我有一些使用以下代码访问底层电子表格的不同系统。
var mainLinks = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main");
他们已经工作了6个月,但我现在收到以下错误,并参考上述行。
TypeError: Cannot call method "getSheetByName" of null.
此方法是否已更改?对于如何解决这个问题,有任何的建议吗?谢谢!
答案 0 :(得分:1)
没有任何改变。您没有当前有效的电子表格。根据{{1}}
的documentation返回当前活动的电子表格,如果没有,则返回null。
因此,SpreadsheetApp.getActiveSpreadsheet
会返回SpreadsheetApp.getActiveSpreadsheet()
,因为您当前没有活动的电子表格,那么您尝试在null上调用方法并获得预期的错误...
无法调用null的方法“getSheetByName”。
避免错误的简单修复方法是检查null
这样的
null
有很多原因导致您可能没有有效的电子表格,我们无法在没有更多信息的情况下告诉您,但您可以尝试...
var mainLinks;
var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
if (activeSpreadsheet !== null) {
mainLinks = activeSpreadsheet.getSheetByName("Main");
} else {
// handle case where there is no active spreadsheet
}
要查找电子表格密钥,请打开电子表格并查看浏览器地址栏:密钥是sheet = SpreadsheetApp.openById(**your spreadsheet key**).getActiveSheet()
与第一个非字母数字字符之间的位,通常为key=
或{{1如&
或#
。
答案 1 :(得分:0)
我不知道这个SpreadsheetApp,但是消息显示getSctiveByName方法所在的getActiveSpreadsheet方法为null。
根据方法名称,未启用SpreadsheetApp。它可能已经过期,或类似的东西。