我正试图创建一个自定义函数,复制一个Sheet的值,然后用这些值创建另一个电子表格。所有的代码都能正常工作,但我需要从手机上访问它。这就是为什么我使用onEdit(e)触发器。使用这个触发器,脚本在应该创建新的工作表的时候就停止了。我用状态框检查了一下,每次都在 "创建工作表 "时崩溃。有没有其他方法,让我可以在手机上访问我的脚本,或者解决这个奇怪的问题。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getActiveSheet();
var r = s.getActiveRange();
if(s.getName() == "FlugbuchExport" && r.getColumn() == 4 && r.getRow() == 4 && r.getValue() == true){
var infoCell = s.getRange(6,3,1,3);
infoCell.setValue("");
infoCell.setValue("Process started");
var dataSheet = ss.getSheetByName("Flugbuch-GmbH");
var windenkladde = ss.getSheetByName("Windenkladde");
var dateRange = windenkladde.getRange(20,4);
var date = dateRange.getValue();
var dateString = Utilities.formatDate(date, "UTC", "dd.MM.yyyy");
var downloadLinks = ss.getSheetByName("Downloadlinks");
infoCell.setValue("Neue Tabelle wird erstellt");
var ssNewName = "LFO " + "Flugbuch - GmbH - " + dateString;
infoCell.setValue("Creating sheet");
var ssNew = SpreadsheetApp.create(ssNewName, dataSheet.getLastRow(), dataSheet.getLastColumn());
var ssNewId = ssNew.getId();
infoCell.setValue("Data got copied");
dataSheet.copyTo(SpreadsheetApp.openById(ssNewId));
var ssNewSheetDelete = ssNew.getSheets()[0];
ssNew.deleteSheet(ssNewSheetDelete);
downloadLinks.appendRow([date,ssNew.getUrl()]);
infoCell.setValue("Process finished");
r.setValue(false);
}
}
onEdit
触发简单的触发器有 限制,如。
他们不能访问需要授权的服务
如果你从脚本编辑器上的 View - > Executions
,你会看到执行失败的消息,如
Exception: You do not have permission to call SpreadsheetApp.create. Required permissions: https://www.googleapis.com/auth/spreadsheets
onEdit
触发 可安装 一个onEdit
Edit > Current project's triggers
Add Trigger
Choose which function to run
Select event type
On edit