- Вы хотите установить флажки в столбцах «B» - «D», когда значение столбца «E2» найдено в столбце «A».
- Из вашего скрипта я подумал вот так.
- Вы хотите отметить только флажки столбцов "B" - "D" последней найденной строки.
- Вы хотите запустить скрипт, нажав кнопку.
Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Шаблон 1:
В этом шаблоне ваш сценарий изменен. В этом случае, пожалуйста, используйте реверс для l oop. И когда значение будет найдено, сломайте l oop.
Модифицированный скрипт:
function check(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var check = sheet.getRange("E2").getValue();
for(var i = data.length - 1; i >= 0; i--){ // Modified
if(data[i][0] == check){
var row = (i+1)
sheet.getRange('B'+row).setValue(true);
sheet.getRange('C'+row).setValue(true);
sheet.getRange('D'+row).setValue(true);
break; // Added
}
}
}
Шаблон 2:
В этом шаблоне используется TextFinder.
Модифицированный скрипт:
function check(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var check = sheet.getRange("E2").getValue();
sheet.getRange(2, 1, sheet.getLastRow() - 1, 1)
.createTextFinder(check)
.findAll()
.pop()
.offset(0, 1, 1, 3)
.check();
}
- В этом случае
sheet.getRange(2, 1, sheet.getLastRow() - 1, 1).createTextFinder(check).findAll().pop()
возвращает ячейку последней найденной строки. Поэтому для этого флажки столбцов «B» - «D» проверяются с использованием offset(0, 1, 1, 3)
и check()
. - Если вы хотите проверить только столбец «B», пожалуйста, измените
offset(0, 1, 1, 3)
offset(0, 1, 1, 1)
Ссылки:
Если я неправильно понял ваш вопрос и это Я не извиняюсь.