iT邦幫忙

0

google 試算表 App Scripts 問題

  • 分享至 

  • xImage

想要針對google試算表請教各位大大一些問題,簡單扼要地說是有一個試算表裡有兩個分頁,一個是sheet1另一個是sheet2,想要在sheet1的A1、A2、A3、A4每次變更數字的時候都在sheet2裡記錄什麼時間記錄了什麼數字,未來好拿來做成趨勢線圖現在只記錄了一次就停了,AppScript程式應該要怎麼改?

示意圖:
https://ithelp.ithome.com.tw/upload/images/20251016/20167570aPHN9657gk.png
https://ithelp.ithome.com.tw/upload/images/20251016/20167570ccR2DFbbeV.png
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]);

}
}

win895564 iT邦研究生 4 級 ‧ 2025-10-16 17:53:59 檢舉
程式碼丟出來或是目前有哪些設定大家比較好debug,另外 你有說道只記錄的一次我只能猜測你資料是從其他地方自己帶過來的或是手動key的,那這樣看起來可以去看一下觸發器的部分,當然還是提供多點資料會比較有幫助
資料是用公式帶進sheet2的
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答