【问题标题】:Error TypeError: Cannot read property 'getRange' of null mnthly @ submitPayslip.gs:117错误类型错误:无法读取属性 'getRange' 的 null mnthly @ submitPayslip.gs:117
【发布时间】:2021-10-06 00:42:08
【问题描述】:

我的应用脚本出错。 enter image description here

function mnthly () {
  var ss, s1, data, outdata, s2;
  ss = SpreadsheetApp.getActiveSpreadsheet();
  s1 = ss.getSheetByName("Paycheck");
  data = s1.getDataRange().getValues();
  outdata = [data[3][2], data[4][2], data[5][2], data[2][7], data[3][7],
             data[11][4], data[11][8], data[13][6], data[14][6],
             data[16][2], data[16][3], data[17][2],
             data[17][6], data[17][7], data[17][8],
             data[18][6], data[18][7], data[18][8]];
  s2 = ss.getSheetByName(data[2][7]);
  s2.getRange(s2.getLastRow()+1, 1, 1, outdata.length).setValues([outdata]);           
}

TypeError: Cannot read property 'getRange' of null
mnthly  @ submitPayslip.gs:117

我所做的是我需要按月分开薪水。我应该如何编辑这个?

【问题讨论】:

  • 在那种情况下,我认为s2 可能是null。那么,如何确认电子表格中是否存在data[2][7]的工作表名称?
  • @Tanaike 嗨,是的。我确实确认电子表格中存在数据 [2][7] 的工作表名称。数据 [2][7] 是来自列表的数据验证,特别是月份(1 月、2 月、3 月等),但我确实确保月份存在并且有自己的工作表
  • 感谢您的回复。在您的脚本中,当您确认s2 = ss.getSheetByName(data[2][7]);s2 的值时,您得到了什么值?
  • @Tanaike 对不起,我有点迷路了。每当我运行脚本时, s2=ss.getSheetByName(data[2][7]) 的值都不会显示在应有的位置。那应该是一个月出现在自己的工作表上。这能回答你的问题吗?
  • 感谢您的回复。从您的回复中,我无法理解Whenever I run the script, the value of s2=ss.getSheetByName(data[2][7]) doesn't show up to where it should be. That is supposed to be a month appearing on its own sheet. Does this answer your question?。我也无法理解您确认的s2 = ss.getSheetByName(data[2][7]);s2 的价值。我为我糟糕的英语水平道歉。

标签: function google-apps-script google-sheets


【解决方案1】:

根据我的经验和我自己在脚本中的错误,请确保字段不为空,尤其是“outdata”(在我的脚本中),尤其是“data [2][7]”中的字段。您应该在输入信息后运行脚本。

如果您有错误,请调试您的脚本以了解您出错的地方,如果它为空,请将数据放在您需要放置的那些字段中。

【讨论】:

    猜你喜欢
    • 2021-12-03
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    • 2017-12-15
    • 1970-01-01
    相关资源
    最近更新 更多