[英]Have an onEdit() function run whenever a cell value is changed in Google Sheets
我有一張包含以下內容的工作表:
ID ROW STATUS ......
3588053 4 NEW
ID和ROW的數據來自名為KDCAlerts的外部電子表格
當 KDCLog 發生變化時執行的onEdit命令(或在本例中為 onMyEdit )更改填充的STATUS
每次外部電子表格更改時, ID和ROW都會更改(例如:添加/刪除行等)
我需要做的是修復此問題,以便在ID或ROW更改時運行onMyEdit function 。
我怎樣才能做到這一點? 下面是目前正在使用的代碼。
任何幫助、提示或建議將不勝感激。
TIA
function creatTrigger() {
if(ScriptApp.getProjectTriggers().filter(t => t.getHandlerFunction() == "onMyEdit").length == 0) {
ScriptApp.newTrigger("onMyEdit").forSpreadsheet(SpreadsheetApp.getActive()).onEdit().create();
}
}
function onMyEdit(e) {
var sh = e.range.getSheet();
if (sh.getName() == "KDCLog" ) {
var extSS = SpreadsheetApp.openById("1b5qiNxxxxxxxxxRuLf-8dTBgRU9cHLBbd2A");
var extSH = extSS.getSheetByName("KDCAlerts");
} else { return; }
....
....
更新:
@doubleunary - 感謝您的回復。
目前尚不清楚 ID 和 ROW 列中的值是如何寫入電子表格的,
有 2 個文件: KDCLog和KDCAlerts 。
KDCLog!ID填充如下:
=IF ( ISERROR( INDEX(SORTN(FILTER({KDCAlerts!E:E,KDCAlerts!H:H, KDCAlerts!A:A}, KDCAlerts!D:D=E7),1,,2,FALSE),,3) ), -1, INDEX(SORTN(FILTER({KDCAlerts!E:E,KDCAlerts!H:H, KDCAlerts!A:A}, KDCAlerts!D:D=E7),1,,2,FALSE),,3) )
因此,它使用 function(在 KDCLog 工作表中執行)從KDCAlerts “拉取”。
每當KDCAlerts發生變化時,KDCLog!ID 中的值也會發生變化(無需手動干預- KDCAlerts隨着行的添加而變化)。
如果您正在使用另一個腳本寫入電子表格,則可能不會發送任何事件。
對於STATUS列,它填充了一個onEdit 函數(見上文)
可以使用可安裝的更改觸發器監視的觸發事件。
有沒有關於這如何工作的示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.