当 editor/collaborator 删除 Google 表单回复时——一些通知?
When editor/collaborator deletes a Google form response--some notification?
如果以 Google 形式手动删除响应,是否有任何 flag/notice 可用于 apps-script,以便可以编写适当的操作脚本来处理链接 [=] 中的相应行18=]?这是需要的,以便 sheet 可以与表单响应保持同步,或者如果响应被不当删除,可以从 sheet 行以编程方式重新提交表单响应。
谢谢!
两者都没有可用的删除响应事件触发器 Google Sheets events and Google Forms events。
您可以采取的一种解决方法是创建一个 onOpen()
installable trigger in your linked Google Sheets using Apps Script that will check if the Google Forms responses count using Form.getResponses() 匹配您 sheet 中的可用回复,每当您打开链接的 Google 表格时。
示例应用程序脚本:
function onOpen(e) {
var form = FormApp.openById('Forms file id here');
var formResponses = form.getResponses();
var responseSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses 1');
//Get number of responses saved in the sheet (Subtract 1 for the header row);
var sheetResponses = responseSheet.getLastRow() - 1;
Logger.log(formResponses.length);
Logger.log(sheetResponses);
if (formResponses.length != sheetResponses){
var ui = SpreadsheetApp.getUi();
var result = ui.alert(
'Warning',
'Responses did not match.',
ui.ButtonSet.OK);
// Sync responses here
}
}
样本回复:
示例输出:(当您打开链接的 Google 表格时)
如果以 Google 形式手动删除响应,是否有任何 flag/notice 可用于 apps-script,以便可以编写适当的操作脚本来处理链接 [=] 中的相应行18=]?这是需要的,以便 sheet 可以与表单响应保持同步,或者如果响应被不当删除,可以从 sheet 行以编程方式重新提交表单响应。
谢谢!
两者都没有可用的删除响应事件触发器 Google Sheets events and Google Forms events。
您可以采取的一种解决方法是创建一个 onOpen()
installable trigger in your linked Google Sheets using Apps Script that will check if the Google Forms responses count using Form.getResponses() 匹配您 sheet 中的可用回复,每当您打开链接的 Google 表格时。
示例应用程序脚本:
function onOpen(e) {
var form = FormApp.openById('Forms file id here');
var formResponses = form.getResponses();
var responseSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Form Responses 1');
//Get number of responses saved in the sheet (Subtract 1 for the header row);
var sheetResponses = responseSheet.getLastRow() - 1;
Logger.log(formResponses.length);
Logger.log(sheetResponses);
if (formResponses.length != sheetResponses){
var ui = SpreadsheetApp.getUi();
var result = ui.alert(
'Warning',
'Responses did not match.',
ui.ButtonSet.OK);
// Sync responses here
}
}
样本回复:
示例输出:(当您打开链接的 Google 表格时)