Google Sheets 脚本:将所有命名范围输出到单元格

Google Sheets Script: Output All Named Ranges to Cells

我想要附加到 Spreadsheet 的脚本中的一个函数来遍历所有命名范围,并将它们输入到“数据”sheet 的单元格中。这个 sheet 有很多列表等,我的主要 sheet(“分析”)使用这些列表。

理想情况下,这将使它们从第 1001 行开始,A 列是名称,D 列是范围。 (B 列和 C 列留空以允许 A 列溢出 - 不想调整 A 列的大小)

为了有效,应先删除函数先前输入的行中的任何现有数据,然后再使用新数据进行更新。

虽然我掌握了脚本语言的窍门,但我正在努力解决这个问题,所以如果有人可以提供示例函数,我们将不胜感激! MTIA.

[编辑] 如果我原来的问题不充分,我深表歉意。我有一些代码,但它是垃圾,我知道,所以我废弃了它。现在差不多了(我想),但还有一个问题需要排序,得到一个例外:

 function namedRangeToSpreadsheet() {
// Author: Cooper
// Link: 
// Purpose: Record all NamedRanges by both Name and Range, as a check that 
//          public copy is NOT missing any!
  const ss=SpreadsheetApp.getActive();
  const nrA=ss.getNamedRanges();
  
  var startRow = 1001;  // MH insert from this row
  var endRow = 1200;    // MH clear|insert to a max. of this
  // var targetSh = "Data";   // MH revert to Data ss when tests OK
  var targetSh = "Named Ranges";  

  // MH clear previous data
  let sh=ss.getSheetByName(targetSh); 
  var range = sh.getRange(targetSh + "!A" + startRow + ":D" + endRow);
  range.clear();
  //sh.getRange(sh.getLastRow()+1,1,rowA.length,4).clear();  

  let rowA=[];
  for(let i=0;i<nrA.length;i++) {
    let name=nrA[i].getName();
    let range=nrA[i].getRange().getA1Notation();
    rowA.push([name,'','',range]);
  }
  rowA.sort(); // MH   

  /*  Exception: The number of rows in the data does not match the number of rows in the range. 
  The data has 32 but the range has 200. (line 348, file "Code") */

  //sh.getRange(sh.getLastRow()+1,1,rowA.length,4).setValues(rowA);

  range.setValues(rowA);
}
function namedRangeToSpreadsheet() {
  const ss=SpreadsheetApp.getActive();
  const nrA=ss.getNamedRanges();
  let rowA=[];
  for(let i=0;i<nrA.length;i++) {
    let name=nrA[i].getName();
    let range=nrA[i].getRange().getA1Notation();
    rowA.push([name,'','',range]);
  }
  let sh=ss.getSheetByName('Sheet1');
  sh.getRange(sh.getLastRow()+1,1,rowA.length,4).setValues(rowA);
}