我看过这个讨论,但不想劫持它。 link
我是google脚本的新手,但我发现这个以某种方式工作
function deleteRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('ark1'); // 0AmWS-4fnAa_OdG9aV210NnZlZHlDYVRZSUxrOFdwX1E&usp
var values = s.getDataRange().getValues();
var deleted = 0; // Counter (don't need if we loop backwards)
for (var row = 0; row < values.length; row++) {
if (values[row][2] == '' || values[row][2] == 0) {
s.deleteRow(row + 1 - deleted);
deleted++;
}
}
SpreadsheetApp.flush();
};
它适用于我的测试电子表格。但仅限于C列。当我输入数字0时,该行将被删除。我希望它对不同的列做出反应。即N而不是。 我怎么做? 我打赌答案很明显,但我无法弄明白。 非常感谢任何帮助。
谢谢!
Jesper Homann
答案 0 :(得分:0)
列以A = 1,B = 2,C = 3等开始...因此列N为14。
数组从0开始计数,因此在您的代码示例中,您必须使用
if (values[row][13] == '' || values[row][13] == 0) {
我希望我说清楚。
请注意,在上面的代码中,您使用了s.deleteRow(row + 1 - deleted);
,而+1
的出现原因完全相同:行数从1开始,数组从0开始计算。
IMO,变量名row
绝对不是一个好选择,因为它是模糊的,它是一个表格行或一个数组行...一个人应该称之为n或i,任何中性。在这个例子中,它是一个数组行,因此从0开始,然后是+1,以获得工作表行(我们删除的那一行)。