【发布时间】:2017-02-07 02:16:43
【问题描述】:
我正在使用 Cognito 表单收集信息,然后使用 Zapier 将此信息传递到我的 google 电子表格数据库。我发现我在谷歌电子表格中的脚本不会像我期望的那样触发。
这个:
function onEdit(event){
var ColCR = 96; // Column Number of "CR"
var changedRange = event.source.getActiveRange();
if (changedRange.getColumn() == ColCR) {
var state = changedRange.getValue();
var adjacent = event.source.getActiveSheet().getRange(changedRange.getRow(),ColCR+1);
var adjacentv = adjacent.getValue();
var timestamp = Utilities.formatDate(new Date(), "GMT-7", "M/dd/yy', 'h:mm a");
switch (adjacentv) {
case "":
adjacent.setValue("("+timestamp+")"+" "+state);
changedRange.clearContent();
break;
default:
adjacent.setValue(adjacentv+"\n"+"("+timestamp+")"+" "+state);
changedRange.clearContent();
break;
}
}
}
当用户直接编辑电子表格单元格时工作正常,但在 Zapier 更新单元格时不能正常工作。当用户修改电子表格时,它也适用于几种不同类型的触发器。直接编辑电子表格与使用 Zapier 等应用程序编辑表单有什么区别?我可以编写一个脚本来查看 Zapier 等应用的编辑吗?
这个:
function Timestamp() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var cell = sheet.getActiveCell();
var comments = cell.getComment();
var formattedDate = Utilities.formatDate(new Date(), "GMT-7", "M/dd/yy', 'h:mm a ");
Newline works in msgBox, but not in Note.
comments = comments + "Mod: " + formattedDate;
Browser.msgBox(comments);
cell.setComment(comments);
}
当用户编辑单元格并由 On Change 触发器触发时可以正常工作,并且在 Zapier 更新单元格时也可以正常工作,但是当 Zapier 连续更新多个单元格时,它只会将注释放在范围内的第一个单元格中.我将如何修改脚本,使其在每个单元格的每次更改时触发,而不仅仅是范围?
我确定这与 Zapier 如何与我的电子表格交互有关,但我不明白 Zapier 编辑与用户编辑有何不同?
感谢您的任何建议或建议。
【问题讨论】: