yas*_*asu 3 google-apps-script
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();
Run Code Online (Sandbox Code Playgroud)
第2行和第3行工作正常,但第4行给出错误"无法找到方法getRange(number,number,number,number)".它似乎getRange(number,..)只适用于活动表,而不适用于openById.
这是一个错误吗?有谁知道使用这种表示法的正确方法SpreadsheetApp.openById()?
由于您在通过触发器运行脚本时使用openByID,因此将没有活动工作表.但是你试图从ActiveSheet中获取getRange,即未定义的getRange.您可以先将工作表激活,然后使用getActiveSheet,也可以使用
SpreadsheetApp.getSheets[0].getRange(...); //index may vary
//or
SpreadsheetApp.getSheetByName('sheetName').getRange(...)
Run Code Online (Sandbox Code Playgroud)
当你直接在Spreadsheet对象而不是Sheet 1上获得范围时,就像你在第3和第4行所做的那样,你实际上是在第一张表上得到了范围.
这只是一个快捷方式,你应该真的getSheets()[0],甚至更好,getSheetByName并在其上调用getRange(Sheet对象).因为,正如您所指出的,这是一个捷径,而不是标准路径.例如,你没有getRange(int,int,int,int)的简称.
| 归档时间: |
|
| 查看次数: |
2392 次 |
| 最近记录: |