接收错误消息TypeError:无法调用方法" getSheetByName"在先前工作的系统上为null

时间:2018-06-06 21:14:02

标签: javascript google-apps-script

我有一些使用以下代码访问底层电子表格的不同系统。

 var mainLinks = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main");

他们已经工作了6个月,但我现在收到以下错误,并参考上述行。

 TypeError: Cannot call method "getSheetByName" of null.

此方法是否已更改?对于如何解决这个问题,有任何的建议吗?谢谢!

2 个答案:

答案 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。它可能已经过期,或类似的东西。