我怀疑这是一个简单的修复程序,但是我在Google App脚本中遇到了问题,我读了许多帖子,这些帖子表明这些功能在自定义函数中已被弃用,但我不知道如何解决。
我有一个脚本,当使用onOpen()函数打开Google表格时,该脚本会自动运行。我试图在此函数内移动OpenByID()方法,但遇到相同的错误。有人可以告诉我如何解决此问题。
function onOpen(e) {
//function test(e) {
// Add a custom menu to the spreadsheet.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var masterSheet=ss.getSheetByName(masterTab);
for(var xLOSName = 3; xLOSName <= 4; xLOSName++)
{
Logger.log('Attempting to open file');
var fileId = masterSheet.getRange(xLOSName,2).getValue();
Logger.log('Opening File ID: ' + fileId);
var xLOSSpreadsheet = SpreadsheetApp.openById(masterSheet.getRange(xLOSName,2).getValue());
//var xLOSSpreadsheet = SpreadsheetApp.openById(masterSheet.getRange(xLOSName,2).getValue()).getSheets()[0];
Logger.log(xLOSSpreadsheet.getName());
}
注意:它永远不会记录文件名。愚蠢的是,这在从调试器运行时有效。 问候
答案 0 :(得分:1)
不能在自定义函数中使用SpreadsheetApp.openById()。不只是弃用它是不允许的。
Restrictions on Custom Functions
像onOpen()这样的简单触发器也无法执行需要权限的操作。
如果您需要需要许可的操作,则必须使用可安装的触发器。
答案 1 :(得分:0)
您是否尝试过使用与onOpen()不同的自定义函数来运行相同的代码? 我遇到了类似的问题,这些问题最终限制了onOpen()和onEdit()函数,而且我还在寻找sintax错误,例如...