我在Google工作表中使用数据验证就像按钮一样调用函数。一种选择是重置我的电子表格(调用reset()函数),以便清除所有数据。另一种选择是保存我的电子表格(调用saveAs()函数)。当我运行reset()和saveAs()时,两个函数都能正常工作。我的onEdit函数也可以工作,并根据我在电子表格单元格中的选择调用reset()和saveAs()。
我的问题是saveAs()函数只有在从onEdit()函数调用时才能完成。当它自己被调用时,它很好,但是当从onEdit()调用时,它会被挂起来
var parentFolder = DriveApp.getFileById(thisFileId).getParents().next();
这是整个功能
function saveAs(){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var d = new Date();
var thisFileId = SpreadsheetApp.getActive().getId();
var parentFolder = DriveApp.getFileById(thisFileId).getParents().next();
DriveApp.getFileById(sheet.getId()).makeCopy(d+"", parentFolder);
}
我将非常感谢任何解释和/或解决方案!
谢谢。
答案 0 :(得分:1)
事实证明它被挂起的原因是因为onEdit apps脚本触发器是一个简单的触发器"而不是"可安装的触发器"。这意味着它无权访问更改文件和目录,这就是为什么在调用DriveApp类时它似乎被挂起了。
为了解决这个问题,我创建了一个可安装的类似onEdit的触发器来调用我的saveAs函数,它工作正常!