У меня есть функция с именем copy (), которая может копировать диапазон с листа и вставлять на другой лист. Эту функцию необходимо выполнить из редактора сценариев, но я хочу сделать это автоматически, если я изменю значение ячейки Sheet3! A3.
С помощью следующего кода я могу отправить дату / время определенной ячейке. Я хочу что-то вроде этого, который просто вызовет функцию copy (), если значение A3 для Sheet3 будет изменено.
function onEdit(event) {
var range = event.range;
//var cofCellEdited = range.getActivelumnOSheet();
var cofCellEdited = range.getSheet().getSheetName();
if (cofCellEdited === "Sale") {
var timezone = "GMT+06:00"
var timestamp_format = "M/d/yyyy HH:mm:ss"; // Timestamp Format.
var updateColName = "Product";
var timeStampColName = "Time";
var sheet = event.source.getSheetByName('Sale'); //Name of the sheet where you want to run this script.
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var dateCol = headers[0].indexOf(timeStampColName);
var updateCol = headers[0].indexOf(updateColName);
updateCol = updateCol + 1;
if (dateCol > -1 && index > 1 && editColumn == updateCol) { // only timestamp if 'Last Updated' header exists, but not in the header row itself!
var cell = sheet.getRange(index, dateCol + 1);
var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
cell.setValue(date);
}
}
И моя функция копирования:
function copy() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var target = SpreadsheetApp.openById("1I9KYJUtT2Vi0yAi_b8LaBSijReL-XEoKKZUqTxeWmQQ");
var source_sheet = ss.getSheetByName("Suposed Share");
var target_sheet = target.getSheetByName("Payable");
var source_range = source_sheet.getRange("A2:D3");
var last_row = target_sheet.getLastRow();
target_sheet.insertRowAfter(last_row);
var target_range = target_sheet.getRange("A" + (last_row + 1) + ":D" + (last_row + 1));
source_range.copyTo(target_range, {
contentsOnly: true
});
}
Как я могу вызвать эту функцию, если я изменю значение Sheet3! A3?