将编辑脚本转换为手动运行的脚本



该脚本的目的是在第 4 列中的单元格具有文本Assign时将日期时间戳写入特定单元格。

我有一个理论上有效的脚本,但我从应用程序表获取数据。这样做的问题是Appsheet将数据写入我的工作表,但脚本不会将其视为编辑过的单元格,因此它不会写入时间戳。

但是我对应用程序脚本的了解非常糟糕。而且我在源代码行和 col、val 行方面遇到错误。

function onEdit(e) {
  var sh =  e.source.getActiveSheet();
  var row = e.range.getRow();
  var col = e.range.getColumn();
  var val = sh.getRange(row, 4).getValue();

  //check if sheet is 'Blad1' & value is 'Assign'
  if (sh.getSheetName() === 'Blad1' && val == 'Assign') {
    var tz = e.source.getSpreadsheetTimeZone();
    var date = Utilities.formatDate(new Date(), tz, 'dd-MM-yyyy hhmmss');
    //set date in column 14 for same row
    sh.getRange(row, 14).setValue(date);
  }
}

我想将我的脚本转换为手动运行的脚本,基于时间的触发器为 1 分钟。这样我希望脚本会看到更改为Assign的单元格。

问题的根源在于应用程序脚本触发器的限制,特别是它们无法侦听基于脚本的事件。我建议将您的脚本部署为具有 doGet()/doPost() 函数的 WebApp 来侦听 API 请求,如果我假设 AppSheet 的工作方式与 Zapier 等类似是正确的,请添加一个步骤,在更改Spreadsheet后调用您的 WebApp。

请在WebApps上查看本指南,它非常简单。

附言顺便说一句,不要创建充当事件侦听器的触发器,您将轻松限制配额!

最新更新