Является ли sheet.getRange (2: 3) допустимым выражением? - PullRequest
1 голос
/ 25 апреля 2019

Я работаю над листами Google, используя скрипт Google Apps.Я хочу перебрать кучу строк - условно выбрать несколько из них - и удалить выбранные.Я использую метод sheet.getRange () для достижения этой цели.Я хочу передать свою итерационную переменную непосредственно в функцию.Но не работает.

Я нашел приведенный ниже пример кода в (https://developers.google.com/apps-script/reference/spreadsheet/group) Групповом классе, используя сам метод getRange ().

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 голосов
/ 25 апреля 2019

Недействительно.Google допустил ошибку.Это должно быть указано, чтобы быть действительным JavaScript:

var range = sheet.getRange('2:3');

Или

sheet.getRange(k + ':' + k).activate();
0 голосов
/ 25 апреля 2019

data [k] не имеет числового значения, как вы его написали. чтобы получить доступ к отдельным элементам данных, вам нужно сделать данные [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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...