javascript - 根据列值隐藏列
问题描述
我想隐藏第 5 行中值为 0 的列。
我已经尝试了以下代码,但它似乎不起作用。
function myFunction() {
}
function onEdit(){
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var lastColumn = sheet.getLastColumn();
for(i=1 ; i<=lastColumn ; i++){
var status = sheet.getRange(5+i).getValue(); //change "5" to desired column
if (status == "0"){//change "0" to desired text
sheet.hideColumns(i);//hide row if true
}
else{
sheet.showColumns(i);//unhide row if false
}
}
}
这是错误
例外:在 onEdit 找不到范围(最佳副本:10:24)
有什么建议么?
解决方案
我猜你没有正确使用获取范围功能。
getRange(a1Notation) -- As per doc this a1Notation is string like A1 , A2 ..
你正在传递一个整数。或者如果您知道列将其更改为(A 或 B 根据需要)
getRange( 'A' + (5 + i))
我想您需要检查满足您需求的其他 getRange 实现。
请检查
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangea1notation
[编辑]
function onEdit(){
var ss = SpreadsheetApp.getActive();
var sheet = ss.getActiveSheet();
var lastColumn = sheet.getLastColumn();
for(i=1 ; i<=lastColumn ; i++){
var status = sheet.getRange(5,i).getValues(); //.getValue(); //change "5" to desired column
if (status == "0"){//change "0" to desired text
sheet.hideColumns(i);//hide row if true
}
else{
sheet.showColumns(i);//unhide row if false
}
}
}
此脚本将隐藏第 5 行中的所有列——值为 0。
推荐阅读
- asp.net-mvc - 使用 ASP .NET 应用程序运行 Visual Studio,但在哪里可以更改网站中的验证语言?
- mysql - 连接无法对接 MySQL 服务
- javascript - 我们可以在 Express.js 的路由中使用另一条路由吗?
- docker - Docker 正在运行,但 Pycharm 无法连接到 Docker 守护进程
- wordpress - 我使用哪个钩子来根据帖子/类别重定向用户?
- delphi - Delphi:从 HTTPS WWW 资源中获取文本
- r - R:在 R 中找到年化平均回报
- asp.net-core - ASP.NET Core MVC Group by LINQ 查询
- python - 如何将 csv 文件作为值添加到字典中
- vb.net - 在 vb.net 中设置每个表单的背景颜色