如何修改下面的脚本来读取列中的值,但只读取指定单元格的值:L9,L10 ... L18,L19 .... L27,L28 ......(两个通过两个跳八,到列L2000的末尾)并且当找到值" 1"在其中一个单元格中,然后用" FALSE"?
替换4行的值。e.g。如果找到单元格L19的数字1,则用单词" FALSE"替换单元格L15的值。 ...如果找到单元格L28的数字1,则将单词L24的值替换为单词" FALSE"
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ABC");
var lastrow = ss.getLastRow();
var range = ss.getRange(9, 12, lastrow - 1, 1);
var data = range.getValues();
for (var i=0; i < data.length; i++) {
if (data[i][0] == "1") {
data[i][0] = "FALSE";
}
}
range.setValues(data);
答案 0 :(得分:0)
添加另一个循环计数器:尝试修改
自:
var range = ss.getRange(9, 12, lastrow - 1, 1);
var data = range.getValues();
for (var i=0; i < data.length; i++) {
if (data[i][0] == "1") {
data[i][0] = "FALSE";
}
}
要:
var range = ss.getRange(5, 12, lastrow+5, 1);
var data = range.getValues();
var m= 0;
for (var i=4; i < data.length; ) {
if (data[i][0] == "1") {
data[i-4][0] = "FALSE";
}
m++;
if (m == 2) {
m=0;
i = i + 8;
} else {
i++;
}
}
答案 1 :(得分:0)
我对循环应该成为什么:
var range = ss.getRange(9, 12, lastrow - 1, 1);
var data = range.getValues();
var i = 4,
// Subtract 1 here because we compare both i and i+1 in the same loop body
len = data.length - 1;
while (i < len) {
// Check the value of the first row in the subset.
if (data[i][0] == 1) {
data[i - 4][0] = "FALSE";
}
// Check the next row in the subset.
if (data[++i][0] == 1) {
data[i - 4][0] = "FALSE";
}
// Advance to the next subset.
i += 8;
}