arrays - 使用 Google Apps 冻结表格中的行会引发类型错误
问题描述
我正在尝试使用 GAS 来冻结每张纸的第一行。它可以工作,冻结所需的行,但返回错误:
“TypeError:无法调用未定义的方法 setFrozenRows”(第 6 行,文件“freezeLabelRows”)
根据 Google 文档,语法是正确的。我正在从附加到我正在开发应用程序的工作表的代码编辑器中运行脚本。我尝试了一个数字 (1),其中 numRowsFr 现在是;这是我用来躲避这个错误的一种解决方法。
function rowFreeze() {
var numSheets = SpreadsheetApp.getActiveSpreadsheet().getNumSheets();
for(var i = 0; i <= numSheets; i++) {
var frSheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[i];
var numRowsFr = 1;
frSheet.setFrozenRows(numRowsFr);
}
}
正如我所说,代码可以冻结每张纸上所需的行,但会返回错误。我想让这个应用程序的其余部分到位,以便为当前用户升级。
解决方案
问题:
- 数组索引从 0 开始,到数组 -1 的长度结束。当您
<=numSheets
用作循环条件时,您在数组(工作表数组)的末尾循环。在最后一张纸之后,frsheet
将是未定义undefined
的并且没有setFrozenRows
方法,因为它不是图纸类型。
解决方案:
- 仅循环到数组的末尾。
片段:
i <= numSheets - 1;
或者
i < numSheets;
推荐阅读
- snowflake-cloud-data-platform - SnowSQL JSONL 与 JSON
- vuejs2 - Vue2:在 vuetify 中加载选项卡项内容时显示进度条
- linkedin - /v2/videoAnalytics-Endpoint 返回 402“对内容的访问仅限于公司管理员”尽管具有管理员角色
- angular - 在Angular 11中动态添加子路由到延迟加载的模块
- php - 从 Node.js 到 PHP 的 Webhook 真实性
- javascript - 使用 createGunzip 函数节点 js 时 Zlib 给出错误的文件意外结束
- python - 将数据框的每一行与另一个数据框的所有行进行比较
- go - 我怎样才能用反射独特地合并两个切片
- c# - ASP.NET Core MVC Web 应用程序中未加载 HTTP 状态代码 500 的自定义 cshtml 页面
- node.js - 如何在 monorepo 项目中使用 docker-compose 处理 node_modules