首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使按钮按下可安装的onEdit触发器?

如何使按钮按下可安装的onEdit触发器?
EN

Stack Overflow用户
提问于 2022-11-09 08:23:00
回答 1查看 19关注 0票数 0

因此,当文档中有一个编辑时,我知道onEdit函数会触发。当脚本编辑文档时,它也会触发吗?

我特别需要一个installed.onEdit函数,但我只想在按下按钮时触发它。为了测试它,我给一个绘图脚本分配了一个脚本,该脚本在活动单元格中插入一个时间戳-然后onEdit函数检查该单元格值是否等于日期,如果是的话,它应该在特定的背景中为该单元格着色。

问题是它不起作用。这是密码-请帮帮我!

代码语言:javascript
复制
function buton() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var cell = sheet.getActiveCell();
  var column = cell.getColumnIndex();
  var value = cell.getDisplayValue();
  const date = new Date();

  if(column == 1){
    cell.setValue(date);
  }
}

function installedOnEditTrigger (e) {
  if(value == date){
    cell.setBackground('#cfdaaa');
  }
}

我尝试创建一个单独的onEdit函数,每次编辑时都会检查单元格的值是否是一个特定的值--如果是这样的话,会改变背景的颜色。脚本只在单元格中插入时间戳,但不为背景着色。

这只是一次试用,我需要installed.onEdit函数的实际原因是我需要脚本始终以所有者的身份运行,从而允许脚本从编辑特权中移除其他按下按钮的用户。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-09 09:50:40

您所描述的方法有几个问题。

  • 您可以在buton()函数中安装触发器,但是该触发器将在单击按钮的用户帐户下运行,而不是在电子表格所有者的帐户下运行。
  • 当脚本写入电子表格时,不会发送任何事件,因此当用户单击该按钮时,installedOnEditTrigger(e)不会运行。

既然您已经清楚地说明了这是一个XY问题,我将提出一个不同的解决方案。使用复选框而不是按钮,并有一个常规的可在编辑触发器上安装监视该复选框。在触发器中将复选框重置为false,以便其他用户在之后对其进行勾选。

这样,您就不需要动态安装和删除触发器。一个在电子表格所有者帐户下运行的“永久”安装触发器就足够了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74371784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档