该脚本的目的是在第4列中的单元格具有文本Assign
的时刻将datetimestamp写入特定的单元格。
我有一个理论上可行的脚本,但是我从App Sheet中获取数据。问题在于,App Sheet将数据写入到我的表格中,但脚本不会将其视为已编辑的单元格,因此不会写入时间戳。
但是我对应用程序脚本的了解很差。而且我在源代码行和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
的单元格。
答案 0 :(得分:0)
问题根源于应用程序脚本触发器restrictions,特别是由于它们无法监听基于脚本的事件。我建议您使用doGet()
/ doPost()
函数将脚本部署为WebApp来侦听API请求,如果我正确地假设AppSheet与Zapier类似,则添加一个调用对Spreadsheet
进行更改后,您的WebApp。
请参阅WebApp上的this guide,其用法非常简单。
P.s。顺便说一句,不要创建用作事件侦听器的触发器,您将轻松cap your quotas!