[英]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.