var MasterSheet = SpreadsheetApp.openById("----------------");
var count = SpreadsheetApp.getActiveSheet().getRange(2, 3, 6, 4).getNumColumns();
var count = MasterSheet.getRange("C2:F7").getNumColumns();
var count = MasterSheet.getRange(2, 3, 6, 4).getNumColumns();

第 2 行和第 3 行工作正常,但第 4 行给出错误“找不到方法 getRange(number,number,number,number)”。似乎 getRange(number,..) 仅适用于 Active Sheet,不适用于 openById

这是一个错误吗?有谁知道在 SpreadsheetApp.openById() 中使用这个符号的正确方法吗?

最佳答案

由于您在通过触发器运行脚本时使用 openByID,因此不会有事件工作表。但是,您正在尝试从 ActiveSheet 获取范围,即未定义的 getRange。
要么首先使工作表处于事件状态,然后使用 getActiveSheet
或者你可以使用

SpreadsheetApp.getSheets[0].getRange(...); //index may vary
//or
SpreadsheetApp.getSheetByName('sheetName').getRange(...)

关于google-apps-script - 如何将 getRange 的四参数形式与 SpreadSheetApp.openById() 一起使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10570629/

10-09 04:56