上下文是Google表格。我的脚本应该在列A中找到包含内容Cell 1
的单元格,然后将该行中的B和C列设置为Cell 2
和Cell 3
。不幸的是,尽管重复了这么多次,我似乎无法让它发挥作用。
var sheet = SpreadsheetApp.getActiveSheet();
for (var i = 1; i<sheet.getLastRow(); i++) {
var value = sheet.getRange(i, 1).getValue();
if (value == "Cell 1") {
sheet.getRange(i, 2).setValue("Cell 2");
sheet.getRange(i, 3).setValue("Cell 3");
}
}
你能帮我解决这个问题吗?
答案 0 :(得分:1)
在您的脚本中for (var i = 1; i<sheet.getLastRow(); i++) {}
,i<sheet.getLastRow()
。这意味着不检索最后一行的值。所以请修改
for (var i = 1; i<sheet.getLastRow(); i++) {
for (var i = 1; i<=sheet.getLastRow(); i++) {
或
for (var i = 1; i<sheet.getLastRow() + 1; i++) {
作为另一个示例,您还可以使用getValues()
和setValues()
来实现它。示例脚本如下。
var sheet = SpreadsheetApp.getActiveSheet();
var values = sheet.getRange(1,1,sheet.getLastRow(),1).getValues();
var modified = values.map(function(e){return e[0] == "Cell 1" ? [e[0], "Cell 2", "Cell 3"] : [e[0], "", ""]});
sheet.getRange(1,1,modified.length,modified[0].length).setValues(modified);
如果我误解了你的问题,我很抱歉。