想要針對google試算表請教各位大大一些問題,簡單扼要地說是有一個試算表裡有兩個分頁,一個是sheet1另一個是sheet2,想要在sheet1的A1、A2、A3、A4每次變更數字的時候都在sheet2裡記錄什麼時間記錄了什麼數字,未來好拿來做成趨勢線圖現在只記錄了一次就停了,AppScript程式應該要怎麼改?
示意圖:
A1、A2、A3、A4已變更為B3、C3、D3、E3
程式碼:
function onEdit(e) {
const sheetName = 'Sheet2';
const logSheetName = 'log';
const targetCells = ['B3', 'C3', 'D3', 'E3'];
if (!e) return;
const sheet = e.range.getSheet();
const row = e.range.getRow();
const column = e.range.getColumn();
const editedCell = sheet.getRange(row, column).getA1Notation();
if (sheet.getSheetName() === sheetName && targetCells.includes(editedCell)) {
const logSheet = e.source.getSheetByName(logSheetName);
if (!logSheet) return;
const timestamp = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy/MM/dd HH:mm');
const valueB = sheet.getRange(6, 2).getValue(); // B6
const valueC = sheet.getRange(6, 3).getValue(); // C6
const valueD = sheet.getRange(6, 4).getValue(); // D6
const valueE = sheet.getRange(6, 5).getValue(); // E6
logSheet.appendRow([timestamp, valueB, valueC, valueD, valueE]);
}
}