Google Apps脚本为getLastRow抛出电子邮件失败通知,我做错了什么?

时间:2015-03-15 16:33:53

标签: javascript google-apps-script

我有以下Google Apps脚本:

function myFunction() {

/// VARIABLE DEFINITION  

// Get Spreadsheets
var sursa = SpreadsheetApp.openByUrl("*"); // *=Using one of my DOCS URL here
var destinatie = SpreadsheetApp.openByUrl("*"); // *=Using one of my DOCS URL here

// Set Sheets
var foaie_calcul_sursa = sursa.getSheetByName("*"); // *=Using a valid sheet name here
var foaie_calcul_destinatie = destinatie.getSheetByName("*"); // *=Using a valid sheet name here
var foaie_calcul_email = destinatie.getSheetByName("*"); // *=Using a valid sheet name here
var eroare = "!!!EROARE";

// Get target last row
var ultimul_rand_destinatie = foaie_calcul_destinatie.getLastRow();
Logger.log('Ultimul rand destinatie este %s', ultimul_rand_destinatie);
//// STOP VARIABLE DEFINITION

之后,脚本会继续执行我在工作表上执行的操作。

脚本工作正常但是我已经安排它每天使用触发器运行。问题是,无论是否应该运行,我每天都会收到以下Google Apps脚本失败通知

  

TypeError:无法调用方法" getLastRow"为null。 (第16行,文件" X")

也许我没有像我应该调用getLastRow方法,也许这是一个错误,考虑到脚本工作正常。

有人可以给我一些关于为什么会发生这种情况的想法,或者我可以使用一些替代方法来阻止我每天都收到这些烦人的电子邮件吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

getSheetByName("sheet name")中的工作表名称错误,或者是错误,或者您的代码示例未显示其他因素。

根据错误,这一行:

var foaie_calcul_destinatie = destinatie.getSheetByName("*"); // *=Using a valid sheet name here

没有获得对工作表的引用。 foaie_calcul_destinatienull

如果代码没有打开电子表格,您应该从这一行收到错误:

var destinatie = SpreadsheetApp.openByUrl("*"); // *=Using one of my DOCS URL here

但那并没有发生。

您提供的代码没有任何问题,因此它可能是工作表的名称,也可能是某种错误。

检查工作表名称中的空格或大小写差异。

可能影响此问题的唯一代码行如下:

function myFunction() {
  var destinatie = SpreadsheetApp.openByUrl("*"); // *=Using one of my DOCS URL here
  var foaie_calcul_destinatie = destinatie.getSheetByName("*"); // *=Using a valid sheet name here
  var ultimul_rand_destinatie = foaie_calcul_destinatie.getLastRow();
}

如果表格的名称是正确的,那么它就是某种错误。你有一个有空格的工作表名称吗?如果是这种情况,请尝试用下划线替换空格。例如。 “Data_Sheet”。

如果您发现没有任何错误,请将问题报告给Google。 https://code.google.com/p/google-apps-script-issues/issues/list