循环使用Google表格

时间:2014-08-26 01:38:05

标签: for-loop google-apps-script google-sheets

我很难与Ranges一起解决为什么我需要在 getRange 中添加 i + 1 来获取循环中正确的单元格。我不确定它是否因为我在变量之前增加或是否与初始值有关?

var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Sheet1"); var range = sheet.getDataRange(); var values = range.getValues();

for (var i = 3; i < 30; ++i) { var row = values[i]; var msgSent = row[3]; sheet.getRange(i + 1, 4).setValue("ALERTED");

感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

.getRange()只使用基于整数的引用,而values的2D数组需要使用从零开始的方法引用。

values中的第1行(数组)为values[0],但.getRange()使用.getRange(1, 1)来引用工作表的第1行第1列。第一行中的第一列值为values[0][0]

现在,如果您循环浏览30行左右并想要一次性设置值,这比逐个设置它们要好得多,它会看起来像这样。 ..

var s = ss.getSheetByName('Sheet1');
var newValues = [];
for (var i = 3; i < 30; ++i) {
  var row = values[i];
  var msgSent = row[3];
  newValues.push(["ALERTED"]);
}
s.getRange(4, 4).offset(0, 0, newValues.length).setValues(newValues);