【问题标题】:Clear (not delete) all NamedRanges in google spreadsheet清除(不删除)谷歌电子表格中的所有 NamedRanges
【发布时间】:2013-07-18 12:17:56
【问题描述】:

我的电子表格中有大量的 NamedRanges。 这些是我输入数据的区域。 我怎么能做一个函数来一次清除所有 namedRanges 中的所有值? (到目前为止我发现的只是这个,但它只是清除了一个特定的范围)

  function clearRange1() { 
  //replace 'Sheet1' with your actual sheet name
  var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
  sheet.getRange('B7:G7').clearContent();
  }

【问题讨论】:

    标签: google-apps-script google-sheets named-ranges


    【解决方案1】:

    我相信你可以做这样的事情。我没有看到任何方法可以以编程方式获取电子表格中所有范围的名称。如果有一个功能可以做到这一点,那么了解它会很棒。

    function clearAllNamedRanges() {
    
      var ss = SpreadsheetApp.getActive();
    
      var namedRanges = [ "Sheet1!A3:B5",
                          "RangeName1",
                          "MyFunSheet!C5:H26" ];
    
      namedRanges.forEach(function(rangeName) {
    
        ss.getRangeByName(rangeName).clearContent();
    
      });
    }
    

    【讨论】:

    • 谢谢,这已经帮助了!。由于我必须从另一个工作表触发它,我尝试像这样设置 ss:var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('JAN'); 但是,这给了我一个错误:Funktion getRangeByName Object Sheet not found你知道为什么吗?
    • getSheetByName() 函数仅在 Spreadsheet 对象上可用。我相信命名范围在Spreadsheet 中是独一无二的。这意味着您不需要 Sheet 来访问命名范围。您可以将整个电子表格中的 all 命名范围放入该数组中,它会为您清除这些范围。希望这更清楚一点。
    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多