google-apps-script - 突然之间,这个功能存在多年的 Google 表格出现了错误。他们最近有改变吗?
问题描述
我前段时间写了一个函数来确定工作簿中的工作表是否已经存在。这是功能:
function SheetNameExists(name){
return (ActiveSpreadSheet().getSheetByName(name).toString().indexOf(name) != 0);
}
在过去一个月左右的时间里,我突然得到了一个TypeError: Cannot call method "toString" of null. (line 105, file "Code")
. 第 105 行是return
语句。
在此错误开始发生之前,我对此工作表上的任何脚本都没有任何问题。我没有更改代码隐藏中的任何内容。
Google 是否在不提供弃用支持的情况下进行了某些更改?
编辑:ActiveSpreadsheet()
当我写完所有这些时,我忘记了不是内置函数。这是我为获取它而编写的代码:
function ActiveSpreadSheet(){
return SpreadsheetApp.getActiveSpreadsheet();
}
解决方案
我质疑这以前是如何工作的。getSheetByName(name) 将返回一个 Sheet 对象。toString() 只返回字符串“Sheet”。因此,如果名称为“Sheet”,它将仅匹配名称。但是,您的问题很简单。
var active = SpreadsheetApp.getActiveSpreadsheet(); // For sure the active spreadsheet
var sheet = active.getSheetByName(name); // Where name is a string representing a sheet name
if( sheet ) return true; // Sheet with name exists
return false; // Other wise sheet is null or does not exist
推荐阅读
- php - 使用条件在 PHP 中加载 Div HTML 代码
- python - 如何使用内置输入函数评估 .py 文件?
- docker - Traefik v2 不使用路径路由但使用 ip
- php - 插入数据库失败,带有文件附件
- java - 将 Jfoenix 9 控件与 JDK 13 一起使用时出错
- android - 如何在安卓中启用“在锁定屏幕中显示”权限
- git - 带有 http/2 的 git push 有时会挂起“17 字节杂散数据”
- python - 在Python中将rgb发散热图转换为灰度的正确方法
- c++ - 在 C++ 中读取文件有困难
- python - NameError:未定义全局名称“lower”