Я пишу код для Google листа, и я использую функцию OnEdit
, чтобы обновить столбец с датой обновления. (Если отредактирована ячейка под столбцом с именем NAME
, под ячейкой «отметка времени A» будет создана метка времени. Это работает нормально. Проблема в том, что я пытаюсь применить это правило к другим двум колонкам. I пытаюсь создать метку времени под ячейкой, которая называется "метка времени B", когда ячейка под именами ячеек PROGRESS
редактируется.
Under - это код, который отлично работает для меня с оригинальной опцией, и код, который я пытался написать, который не работает. спасибо !!
function onEdit(event) {
var timezone = 'GMT';
var timestamp_format = "MM-dd-yyyy HH:mm:ss"; // Timestamp Format. var updateColName = "NAME"; var timeStampColName = "time stamp A"; var sheet = SpreadsheetApp.getActive().getSheetByName('work_sheet'); var updateColName2 = "PROGRESS"; var timeStampColName2 = "time stamp B";
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers = sheet.getRange(4, 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(), "GMT+2", timestamp_format); cell.setValue(date); }
}
Код, который я пытался написать:
function onEdit(event) {
var timezone = 'GMT';
var timestamp_format = "MM-dd-yyyy HH:mm:ss"; // Timestamp Format. var updateColName = "NAME"; var timeStampColName = "time stamp A"; var sheet = SpreadsheetApp.getActive().getSheetByName('work_sheet'); var updateColName2 = "PROGRESS"; var timeStampColName2 = "time stamp B";
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers = sheet.getRange(4, 1, 1, sheet.getLastColumn()).getValues();
var dateCol = headers[0].indexOf(timeStampColName);
var updateCol = headers[0].indexOf(updateColName);
updateCol = updateCol + 1;
var dateCol2 = headers[0].indexOf(timeStampColName2);
var updateCol2 = headers[0].indexOf(updateColName2);
updateCol2 = updateCol2 + 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(), "GMT+2", timestamp_format); cell.setValue(date); }
if (dateCol2 > -1 && index > 1 && editColumn == updateCol2) { // 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(), "GMT+2", timestamp_format); cell.setValue(date); }
}