Вы можете управлять листами, на которые воздействует скрипт, проверив имя листа.Ниже представлены два варианта.
- Первый - точное совпадение имени листа со строкой.
- Второй (закомментированный) - сопоставление имени листа с регулярным выражением..
Ниже приведена настройка колонки от A до T.
function onEdit(event) {
var eventRange = event.range;
var sheetName = eventRange.getSheet().getName();
if (eventRange.getColumn() == 14 && sheetName == 'yourSheetNameHere') {
//if (eventRange.getColumn() == 14 && sheetName.match(/sheetName1|sheetName2/)) {
// getRange(row, column, numRows, numColumns)
var columnXRange = SpreadsheetApp.getActiveSheet().getRange(eventRange.getRow(), 20, eventRange.getNumRows(), 1);
//second parameter changed from '1' to '20'. 20 represents column 'T'
var values = columnXRange.getValues();
for (var i = 0; i < values.length; i++) {
if (!values[i][0]) {
values[i][0] = new Date();
}
}
columnXRange.setValues(values);
}
}
EDIT
После нашего разговора я запрыгнул накомпьютер для проверки скрипта.
Вот мой рабочий скрипт.(Только что удалил комментарии) Не должно быть никаких изменений в реальном скрипте.
Также, пожалуйста, обратите внимание, что вы не можете просто использовать функцию отладки как есть, когда тестируете функцию onEdit или onChange, для которой требуется объект события.Если вы собираетесь использовать отладку, в этой функции вам нужно изменить строку 3 на var eventRange = SpreadsheetApp.getActive.getActiveRange();
.
Обратите внимание, что тестовая строка имени листа должна быть точной и чувствительной к регистру..
function onEdit(event) {
var eventRange = event.range;
var sheetName = eventRange.getSheet().getName();
if (eventRange.getColumn() == 14 && sheetName == 'tickets to deliver') {
var columnXRange = SpreadsheetApp.getActiveSheet().getRange(eventRange.getRow(), 21, eventRange.getNumRows(), 1);
var values = columnXRange.getValues();
for (var i = 0; i < values.length; i++) {
if (!values[i][0]) {
values[i][0] = new Date();
}
}
columnXRange.setValues(values);
}
}