该脚本的目的是在第 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上查看本指南,它非常简单。
附言顺便说一句,不要创建充当事件侦听器的触发器,您将轻松限制配额!