TypeError:无法调用方法"getRange"的null.(第4行,文件“代码" [英] TypeError: Cannot call method "getRange" of null. (line 4, file "Code"

查看:38
本文介绍了TypeError:无法调用方法"getRange"的null.(第4行,文件“代码"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试删除包含特定字符串"X"的特定行.

I am trying to delete specific rows containing specific string "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);
};

但是我遇到了以下错误:

But I am getting below error:

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

TypeError: Cannot call method "getRange of null.(line 4, file "Code").

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

Can Anybody help me resolving this error? Thank you

推荐答案

来自文档:getSheetByName()如果没有具有给定名称的图纸,则返回null."因此,您需要处理该问题,请参阅插入的if块:

From the documentation: getSheetByName() "Returns null if there is no sheet with the given name." So you need to handle that, see the inserted if block:

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);
  }

这篇关于TypeError:无法调用方法"getRange"的null.(第4行,文件“代码"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆