【问题标题】:How to setup the "onChange" trigger in Google Sheet script editor如何在 Google Sheet 脚本编辑器中设置“onChange”触发器
【发布时间】:2021-04-30 00:06:36
【问题描述】:

我需要将 Google 表格的单元格背景颜色十六进制代码放入同一个单元格中。

这是我目前使用的功能:

  function BGHEX(row, column) {
  var background = SpreadsheetApp.getActive().getDataRange().getCell(row, column).getBackground();
  return background;
}

现在我有 2 个问题:

  1. 当单元格的背景颜色被编辑时,我需要再次运行该函数。我知道我需要使用可安装的触发器“onChange”,但不知道如何设置。
  2. 我需要此脚本和函数在此 Google 表格文件的副本上运行(即其他表格 ID)。

提前感谢您的帮助!

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案1】:

按照这些步骤在电子表格中设置 onChange 触发器

  1. 打开您的 Apps 脚本项目。
  2. 点击左侧的触发警报。
  3. 点击右下角的添加触发器。
  4. 选择并配置您要创建的触发器类型。
  5. 点击保存。

您的触发器设置应如下所示:

要检测电子表格中的背景更改,您需要有一个事件对象来确定用户所做的更改类型。对于这种情况,我们需要 'FORMAT'。

此外,要更改单元格或区域的背景颜色,用户必须单击或突出显示该区域。使用getActiveRange() 将帮助我们确定正在编辑的范围。

代码:

function onBGChange(e) {
  if(e.changeType == 'FORMAT')
    Logger.log(SpreadsheetApp.getActive().getActiveRange().getBackground());
}

示例:

这里我改变了A1的背景颜色

输出:

执行选项卡:

要将其应用到另一个电子表格,您需要复制代码和触发器设置。脚本绑定到创建它的电子表格,getActive()getActiveRange() 等函数仅适用于脚本绑定到的电子表格。

参考资料:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多