sheet.getRange(2:3)是有效的表达式吗?

时间:2019-04-25 15:44:07

标签: google-apps-script

我正在使用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();
    }
}

2 个答案:

答案 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();