我正在使用Google Apps脚本处理Google表格。我想遍历一堆行-有条件地选择其中一些-并删除所选的行。我正在使用sheet.getRange()方法来实现这一点。我想将迭代变量直接传递给函数。但是不起作用。
我使用getRange()方法本身在(https://developers.google.com/apps-script/reference/spreadsheet/group)Group类中找到了以下示例代码。
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
var range = sheet.getRange(2:3);
range.shiftRowGroupDepth(1);
var group = sheet.getRowGroupAt(2, 1);
//Expands this group.
group.expand();
这是我的代码
var data = sheet.getRange("A:A").getValues();
for (var k = 1; k<=data.length;k++){
if((data[k]-data[k-1]) == 0)
{
sheet.getRange(k:k).activate();
}
}
答案 0 :(得分:0)
data [k]编写时没有数字值。要访问数据中的各个项目,您需要执行data [k] [0]。我会尝试记录该值,以确保它能说明您的期望。您的另一个障碍是激活没有删除。您遇到的最后一个问题是,上移而不是下移,因此如果删除其中的一些行,则将跳过这些行(因此,您需要从头到尾进行迭代)。这对您有用吗?
var data = sheet.getRange("A:A").getValues();
for (var k = data.length-1; k>0;k--){
if((data[k][0]-data[k-1][0]) == 0)
{
sheet.deleteRow(k+1);//array addresses are off by 1 because rows count from 1 and arrays count from 0
}
}
答案 1 :(得分:0)
无效。 Google犯了一个错误。应该引用有效的JavaScript:
var range = sheet.getRange('2:3');
或
sheet.getRange(k + ':' + k).activate();