Google Sheets 脚本:获取 Sheet 命名范围已打开

Google Sheets Script: Get Sheet a Named Range is On

有没有办法获取 Sheet 上的命名范围?感谢@cooper 提供的脚本,我在单独的 sheet 上列出了我所有的 NR 以供参考,但我还没有找到一种方法来获取 sheet 的名称(或索引)。

function c_NamedRangeToSpreadsheet() {
// Author: Cooper
// Link: 
// Purpose: Record all NamedRanges by both Name and Range
  const ss=SpreadsheetApp.getActive();
  const nrA=ss.getNamedRanges();
  const targetSh = "NamedRanges";  

  let sh=ss.getSheetByName(targetSh); 
  sh.clear(); // MH

  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   
  sh.getRange(1,1,rowA.length,4).setValues(rowA);
}

您可以使用方法 getSheet() 获得给定范围的 sheet:https://developers.google.com/apps-script/reference/spreadsheet/range#getsheet

之后,您可以使用 getName() 获取 sheet 的名称 (https://developers.google.com/apps-script/reference/spreadsheet/sheet#getname) or getIndex() to get its index (https://developers.google.com/apps-script/reference/spreadsheet/sheet#getindex)。