【问题标题】:How to hide/unhide a named range of columns with Google script如何使用 Google 脚本隐藏/取消隐藏命名的列范围
【发布时间】:2021-04-08 03:00:27
【问题描述】:

任何可以帮助我编写允许我隐藏或显示已手动命名的列的脚本的人。 下面的代码仅隐藏/显示特定列,我的问题是用户可以在命名范围内插入/删除列,这会导致命名列的范围动态变化。我认为在按名称操作范围时,代码将动态包含命名范围中的列。

    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 中编写什么代码来隐藏找到的范围。我将不胜感激。谢谢。

【问题讨论】:

    标签: google-apps-script show-hide named-ranges


    【解决方案1】:

    我相信你的目标如下。

    • 您想隐藏命名范围的列。
    • 在您的脚本中,您希望隐藏H2aCI 命名范围内的列。

    修改点:

    • 在这种情况下,您可以直接从H2aCI的名称中检索命名范围。
    • 并且,您可以从命名范围中检索列的信息。使用此信息,您可以隐藏命名范围的列。

    当以上几点反映到你的脚本中时,它变成如下。

    修改脚本:

    function returnRangeName1() {
      var rangeName = "H2aCI";
    
      var range = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(rangeName);
      if (range) range.getSheet().hideColumns(range.getColumn(), range.getNumColumns());
    }
    

    参考资料:

    【讨论】:

    • 您的代码 Tanaike 就像一个魅力。现在我可以部署我所有的工作了。非常感谢。
    • @Squirrel22 欢迎您。谢谢你让我知道。我很高兴你的问题得到了解决。如果您的问题得到解决,请按接受按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。我认为您的问题和解决方案将对他们有用。如果找不到按钮,请随时告诉我。 stackoverflow.com/help/accepted-answer
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多