【发布时间】:2018-06-25 12:31:38
【问题描述】:
所以,我一直在试图弄清楚如何阻止重复行出现在我的 google 表单响应输出中的 google 表单中。如果发现此链接听起来完全符合我的要求(Form Google Script Prevent Duplicates),但我无法终生解决如何编辑给定答案以在我的工作表上工作。
我已经包含了我的工作簿的屏幕截图,以举例说明我希望编辑后的代码在其上运行的数据结构,下面是我尝试使代码在我的数据结构上正确运行的尝试。
我想在其上运行代码的工作表结构。我想使用电子邮件地址作为“唯一”标识符,因此可以使用它来识别任何重复的行。
我尝试调整代码以处理上述数据结构(我完全没有使用这种脚本语言的背景,所以如果我犯了一个明显的错误,请放轻松):
function updateExisting() {
var s = SpreadsheetApp.getActiveSheet(),
// s = ss.getSheetByName(''),
lastRow = s.getLastRow(),
lastValues = s.getRange('A'+lastRow+':C'+lastRow).getValues(),
name = lastValues[0][0],
allNames = s.getRange('B2:B').getValues(),
row, len;
// TRY AND FIND EXISTING NAME
for (row = 0, len = allNames.length; row < len - 1; row++)
if (allNames[row][0] == name) {
// OVERWRITE OLD DATA
s.getRange('A2').offset(0, 0, row,
lastValues.length).setValues([lastValues]);
// DELETE THE LAST ROW
s.deleteRow(lastRow);
break;}
}
【问题讨论】:
-
是什么触发了这段代码运行?函数名称是否与“提交表单”触发器相关联?你知道代码是否正在运行吗?
-
到目前为止,我一直在尝试使用 Run/imported as macro 让代码成功运行。它将设置为在您提到的每个提交触发器上运行-我现在将尝试使用您的代码,感谢您抽出时间来帮助我:)
标签: google-apps-script google-sheets google-forms google-sheets-macros