[英]I am trying to unlink, and delete a google form to google sheet link and then relink it to a new sheet with the same name
在我添加虚拟表“无”之前,新创建的表在 foreach 循环期间没有被拾取。 但是,如果删除的工作表不是 Google 工作表中的第一个子工作表,它也可以正常工作。 不知道为什么会这样。
function clearForm() {
var deleter = 0;
var itemsToDelete = form.getItems();
form.deleteAllResponses();
form.setShowLinkToRespondAgain(false);
form.removeDestination();
itemsToDelete.forEach(function(next) {
deleter++;
form.deleteItem(next);
});
SpreadsheetApp.openById(currentSheetID).deleteSheet(currentSheet);
form.setDestination(FormApp.DestinationType.SPREADSHEET, currentSheetID);
mainSheet.insertSheet("None", 0);
var ss = mainSheet.getSheets();
var v = 1;
ss.forEach(function(next) {
Logger.log(v++);
if (next.getName() != "Form Responses 2" && next.getName() !=
"Form Responses 1" && next.getName() != "None") {
next.setName(currentSheetName);
}
});
SpreadsheetApp.openById(currentSheetID).deleteSheet(mainSheet.getSheetByName(
"None"));
}
我了解您的目标是获取现有的表格/表格对,删除表格,创建新表格并将其加入原始表格。 如果我的理解是正确的,那么您只需要对代码进行一些小的调整即可实现您的目标。
第一件事是将旧的响应表更改为新的响应表。 使用Form.getDestinationId()
您可以获得旧响应表的 ID(稍后用于清理)。 然后您可以使用Form.setDestination()
进行更改。 如果您尚未创建新的响应表,则可以使用SpreadsheetApp.create()
来执行此操作。
如果结果很好,那么您可以使用DriveApp.getFileById().isTrashed()
将旧工作表发送到垃圾箱并完成此方法。 如果您对此过程有任何疑问,请告诉我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.