簡體   English   中英

如何使 Google Apps Script 中的自定義函數對 Google Sheets 中單元格背景的變化做出反應?

[英]How to make a custom function made in Google Apps Script reactive to changes in the background of a cell in Google Sheets?

我有這個函數返回指向單元格背景顏色的十六進制代碼。 到目前為止還可以,但我需要它對尖頭單元格背景顏色的變化做出反應。 實際上,每次單元格的背景顏色更改時,我都必須再次調用該函數,以便它注意到背景顏色已更改。 有什么方法可以使這個函數對尖頭單元格背景的變化做出反應?

  function color(input) {
  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var activeRange = SpreadsheetApp.getActiveRange();
  var formula = activeRange.getFormula();
  var address = formula.substr(7,2);

  var cell = ss.getRange(address); 
  var result = cell.getBackground(); 
  return result;
}

onEdit() 不是由后台更改觸發的,但事實證明 onChange 是並且 changeType 是 FORMAT

這是事件對象的副本:

{"authMode":"FULL","changeType":"FORMAT","source":{},"triggerUid":"","user":{"email":"","nickname":""}}

onChange 事件對象

但我不認為有一種方法可以通過自定義函數來利用這一點,如果您在此處找到自定義函數的含義

試試這個:

function onMyChange(e) {
  if(e.changeType == 'FORMAT') {
    SpreadsheetApp.getActive().toast(SpreadsheetApp.getActiveRange().getA1Notation());
  }
}

你應該試試這個

function onChange(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  console.log(ss.getCurrentCell().getA1Notation() + " onchange" );
}

此日志將在觸發器執行日志部分提供給您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM