应用脚本数据验证功能按钮

时间:2016-09-14 11:53:04

标签: google-apps-script

我在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);

}

我将非常感谢任何解释和/或解决方案!

谢谢。

1 个答案:

答案 0 :(得分:1)

事实证明它被挂起的原因是因为onEdit apps脚本触发器是一个简单的触发器"而不是"可安装的触发器"。这意味着它无权访问更改文件和目录,这就是为什么在调用DriveApp类时它似乎被挂起了。

为了解决这个问题,我创建了一个可安装的类似onEdit的触发器来调用我的saveAs函数,它工作正常!