2014-04-06 151 views
6

và xin lỗi vì câu hỏi ngu ngốc.Cách viết trong các ô trong GoogleSpreadSheet bằng cách sử dụng tập lệnh ứng dụng?

Tôi biết cách lập trình trên VBA cho Excel, nhưng tôi đang gặp khó khăn khi thực hiện những công cụ đơn giản nhất trong Bảng tính Google và tôi không thể tìm thấy bất kỳ hướng dẫn trực tuyến nào.

Câu hỏi của tôi liên quan đến ô. Trong VBA để viết trong một tế bào tôi sẽ làm:

cells(1,1) = 2 //that would write the number 2 in the first row of the first column 

trong VBA tôi cũng có thể gán một tế bào cho một biến, như:

dim something as long 
something = cells(1,1) 

Làm thế nào tôi có thể áp dụng cùng một nguyên tắc trong bảng tính Google?

Cảm ơn bạn rất nhiều!

Tôi đã thử những gì các bạn đề xuất. Và bây giờ tôi có một câu hỏi tiếp theo.

Tôi đang cố gắng sửa đổi các ô trong một phạm vi cụ thể. Tôi đã thử mã này:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
var board = sheet.getRange(2,2,9,9); 
board[0][0].setValue(2); 

Nhưng dường như tôi không thể sử dụng ký pháp mảng. Tôi không chắc chắn nếu .setValeu hoặc .getRange là vấn đề. Nhưng có cách nào tôi có thể sử dụng ký hiệu mảng để cơ hội một tế bào?

Cảm ơn bạn lần nữa!

+0

hãy google cho 'google apps kịch bản' và đọc các hướng dẫn có đầu tiên. Xem SpreadsheetApp. –

+0

Tôi biết có vẻ như tôi lười ... nhưng tôi thề là không phải vậy. Tôi đã thực hiện các hướng dẫn cơ bản, nhưng tôi vẫn không thể nhận được hang của nó ... Tôi xin lỗi vì là một người học chậm ... – user3347814

Trả lời

12

Hãy thử sau:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
var cell = sheet.getRange(1,1); 
cell.setValue(2); 
+0

Khi sử dụng setValue() (không có S), bạn không cần để xác định phạm vi có 4 tham số, chỉ có tọa độ ô. Vui lòng cập nhật câu trả lời của bạn.thx –

+0

Vâng, đó là sự thật – swimmingwood

0

Đó là giá trị nhìn vào docs for getRange.

getRange (hàng, cột, numRows, numColumns)

Returns phạm vi với ô trên cùng bên trái tại các tọa độ được với số lượng nhất định các hàng và cột.

Bạn do đó có thể cập nhật nhiều tế bào với một mảng như thế này:

var sheet = SpreadsheetApp.getActiveSheet(); 
sheet.getRange(1, 1, numRows, numColumns).setValues(data); 
SpreadsheetApp.flush(); 
Các vấn đề liên quan