如何使用 Google 脚本 hide/unhide 列的命名范围
How to hide/unhide a named range of columns with Google script
任何可以帮助我编写脚本的人,该脚本允许我隐藏或显示已手动命名的列。
下面的代码仅 hides/displays 特定列,我的问题是用户可以在命名范围内 insert/delete 列,这会导致命名列的范围动态变化。我认为当按名称操作范围时,代码将动态包含命名范围中的列。
function showColBasicInfo() {
sheet.showColumns(4,5);
sheet.getRange(1, 4).activate();
}
function hideColBasicInfo() {
sheet.hideColumns(4,5);
sheet.getRange(1, 4).activate();
}
我做了更多:这段代码将文档中的所有命名范围加载到一个数组中,我可以通过将它加载到一个变量中来搜索特定的范围,但这是我所能得到的。
function returnRangeName1() {
var rangeName = "H2aCI"; //Nombre de rango a buscar
var RangosCNombre = SpreadsheetApp.getActiveSpreadsheet().getNamedRanges();
for(var i = 0; i < RangosCNombre.length; i++) {
if(RangosCNombre[i].getName() == rangeName) {
Logger.log(RangosCNombre[i].getName() + " encontrado");
}
//Logger.log(RangosCNombre[i].getName());
}
}
我需要知道我应该在 GAS 中编写什么代码来隐藏找到的范围。我将不胜感激任何帮助。谢谢。
我相信你的目标如下。
- 您想隐藏指定范围的列。
- 在您的脚本中,您想隐藏
H2aCI
的命名范围内的列。
修改点:
- 在这种情况下,您可以直接从
H2aCI
的名称中检索命名范围。
- 并且,您可以从命名范围中检索列的信息。使用此信息,您可以隐藏命名范围的列。
当以上几点反映到你的脚本中,就会变成下面这样。
修改后的脚本:
function returnRangeName1() {
var rangeName = "H2aCI";
var range = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(rangeName);
if (range) range.getSheet().hideColumns(range.getColumn(), range.getNumColumns());
}
参考文献:
任何可以帮助我编写脚本的人,该脚本允许我隐藏或显示已手动命名的列。 下面的代码仅 hides/displays 特定列,我的问题是用户可以在命名范围内 insert/delete 列,这会导致命名列的范围动态变化。我认为当按名称操作范围时,代码将动态包含命名范围中的列。
function showColBasicInfo() {
sheet.showColumns(4,5);
sheet.getRange(1, 4).activate();
}
function hideColBasicInfo() {
sheet.hideColumns(4,5);
sheet.getRange(1, 4).activate();
}
我做了更多:这段代码将文档中的所有命名范围加载到一个数组中,我可以通过将它加载到一个变量中来搜索特定的范围,但这是我所能得到的。
function returnRangeName1() {
var rangeName = "H2aCI"; //Nombre de rango a buscar
var RangosCNombre = SpreadsheetApp.getActiveSpreadsheet().getNamedRanges();
for(var i = 0; i < RangosCNombre.length; i++) {
if(RangosCNombre[i].getName() == rangeName) {
Logger.log(RangosCNombre[i].getName() + " encontrado");
}
//Logger.log(RangosCNombre[i].getName());
}
}
我需要知道我应该在 GAS 中编写什么代码来隐藏找到的范围。我将不胜感激任何帮助。谢谢。
我相信你的目标如下。
- 您想隐藏指定范围的列。
- 在您的脚本中,您想隐藏
H2aCI
的命名范围内的列。
修改点:
- 在这种情况下,您可以直接从
H2aCI
的名称中检索命名范围。 - 并且,您可以从命名范围中检索列的信息。使用此信息,您可以隐藏命名范围的列。
当以上几点反映到你的脚本中,就会变成下面这样。
修改后的脚本:
function returnRangeName1() {
var rangeName = "H2aCI";
var range = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(rangeName);
if (range) range.getSheet().hideColumns(range.getColumn(), range.getNumColumns());
}