首页 > 解决方案 > 谷歌表格脚本:获取工作表命名范围已打开

问题描述

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

function c_NamedRangeToSpreadsheet() {
// Author: Cooper
// Link: https://stackoverflow.com/a/64841828/190925
// 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);
}

标签: google-apps-scriptnamed-ranges

解决方案


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

之后,您可以使用getName()获取工作表的名称 ( https://developers.google.com/apps-script/reference/spreadsheet/sheet#getname ) 或getIndex()获取其索引 ( https://developers.google.com/应用程序脚本/参考/电子表格/工作表#getindex)。


推荐阅读