Google 应用程序脚本触发器不适用于简单的自定义函数

Google App script trigger does not work on simple custom function

我对 google 应用程序脚本很陌生,但在 javascript 和 python 方面都有一些经验。

我正在尝试 运行 一个非常简单的脚本 in this custom spreadsheet,请参阅第 1 行。

我正在使用自定义函数功能,没有部署 apps/services,我有完整的 read/write 授权。

我正在为个人项目开发一些时间转换和持续时间计算功能,同时尝试从非常简单的功能开始尝试触发器。

与触发器关联的代码确实非常简单:检查预定义单元格的值(在本例中为“A1”)和 return 它在调用函数的单元格中的值。尽可能简单,只是为了试验应用程序脚本触发器:

function zain(){ 
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var a = sheet.getRange("A1").getValue();  
 return a;}

为了在 sheet 中的任何单元格发生更改时更新单元格值,我在函数“zain()”上安装了一个 onEdit() 触发器。

现在,问题是:它不起作用。触发器日志显示 onEdit() 已成功完成,但调用该函数的单元格中的值根本没有改变。它似乎只有在我重新粘贴函数或更改代码并保存时才有效。否则什么都没有。

我查看了本论坛中与触发器相关的所有可能问题,与其他情况相反,我找不到任何可行的解决方案。我检查了触发器对象的问题,传播 sheet 访问,但这些解决方案中的 none 似乎是 working/apply 我的情况。

如果有人能在这件事上提供帮助,将不胜感激。

这是一个 onEdit(e) 函数,它从 A1 中获取摄氏度并在 B1 中计算华氏度

function onEdit(e) {
  const sh = e.range.getSheet();
  if(sh.getName() == 'Sheet0' && e.range.columnStart == 1 && e.range.rowStart == 1 && e.value ) {
    e.range.offset(0,1).setValue(e.value * (9 / 5) + 32);
  }
}

function zain(a) {
  return (a - 32) * 5 / 9;
}

在 C1 中放置“=zain(B1)”,然后当 B1 更改时,A1 的值应该在 C1 中结束,但不是因为 onEdit 触发器,而是因为 B1 已更改

演示: