TypeError:无法调用null的方法“ getRange”。 (第4行,文件“代码”

时间:2019-01-19 11:17:09

标签: google-apps-script google-sheets

我正在尝试删除包含特定字符串“ X”的特定行。

function deleteRows() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('delete containing');
  var r = s.getRange('A:A');
  var v = r.getValues();
  for(var i=v.length-1;i>=0;i--)
    if(v[0,i]=='Substitution: ')
      s.deleteRow(i+1);
};

但是我遇到了以下错误:

  

TypeError:无法调用方法“ null的getRange”(第4行,文件“代码”)。

有人可以帮助我解决此错误吗?谢谢

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

documentation:getSheetByName()“如果没有具有给定名称的图纸,则返回null。”因此,您需要进行处理,请参阅插入的if块:

function deleteRows() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var s = ss.getSheetByName('delete containing');
    if (s === null) {
      ui = SpreadsheetApp.getUi();
      ui.alert("No worksheet of that name"); // Note: displays in the worksheet GUI, not the scripts editor.
      return false;
    }
    var r = s.getRange('A:A');
    var v = r.getValues();
    for(var i=v.length-1;i>=0;i--)
      if(v[0,i]=='Substitution: ') // [sic] jshint kicking up a storm about this line!
        s.deleteRow(i+1);
  }