Пара вещей:
В вашем выражении if
вы не проверяете столбец G - вы проверяете столбец K (11). Если вы хотите проверить G, вам нужно изменить свой if на:
if(data[i][6].toString() == "Complete") {
...
}
Ваша логика обратная, и вам не хватает ключевого слова else
для запуска альтернативы. Таким образом, он будет помечен как «Отправлено», если он не соответствует «Завершено» Поменяйте местами операторы, чтобы правильно заполнить значения ячеек.
Кроме того, проверка строк в цикле немного сложнее. Ссылки на ячейки в качестве индексов - это объекты , а не строки. Вам нужно преобразовать ячейку, используя метод .toString()
, прежде чем вы сможете сравнить прямую строку.
Весь ваш сценарий должен гласить:
function addValidation() {
// Get the spreadsheet and active sheet
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
// Get the data as an Array you can iterate and manipulate
var data = sheet.getDataRange().getValues();
// Loop the sheet
for(var i=0; i<data.length; i++) {
// To change which columns you're testing, change the second value.
// ColG = 6, not 11.
// Convert data[i][6] using .toString() to compare the value
if(data[i][6].toString() == "Complete") {
// If it's "Complete," mark Col H as 'Shipped'
sheet.getRange(i+1, 8).setValue("Shipped");
} else {
// If you want something else to happen, add that here.
}
}
}
Последний шаг - включить триггер для скрипта. Если вы назовете свою функцию onEdit()
, она запустится сама по себе, потому что редактирование - это простой скрипт. Поскольку он называется addValidation
, вам необходимо вручную добавить триггер onEdit
в пользовательском интерфейсе. Перейдите в «Правка»> «Триггеры текущего проекта» и нажмите «Добавить триггер» в правом нижнем углу. Выполните шаги в пользовательском интерфейсе, и скрипт должен запуститься сам.