我的任务是根据单个单元格中的文本/值隐藏Google表格中的所有列。要隐藏的细胞范围来自&包括第22列(" U")到36 /" BE"。如果列的第1行中的值与" J812"中的值相同(即812,10),那么它就不应该被隐藏。
通过在线搜索,我已经整理了我自己的解决方案,唯一的问题是它在脚本完成时显示错误:
"细胞参考超出范围"。
我不知道如何让这个错误消失。
我的部分代码源自此问题:Google spreadsheets: Hide columns based on cell value
这是我的代码:
function HideColumns() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
// get data
var data = sheet.getDataRange();
// get number of columns
var lastCol = data.getLastColumn()+1;
Logger.log(lastCol);
// iterate through columns
for(var i = 1; i < lastCol; i++) {
if(data.getCell(1, 21 + i).getValue() !== sheet.getRange(812, 10).getValue()) {
sheet.hideColumns(21 + i);
}
}
}
任何帮助将不胜感激!
答案 0 :(得分:0)
lastCol是你的最后一列+ 1.在你的for循环中,你循环到lastCol。但是在getCell()中它是21 + i。这意味着你走得太远,因此超出了范围: - )
答案 1 :(得分:-1)
可以这样做吗?
for(var i = 1; i < (lastCol-21); i++)