setNamedRange()在电子表格容器之外?

时间:2012-09-07 19:03:44

标签: google-apps-script google-sheets

我尝试了尽可能多的组合。

我的目标是让Google Apps脚本运行StandAlone或从库中运行,并且能够在电子表格中设置命名范围。

我认为最好,setNamedRange()方法只能在电子表格容器中使用,并且仅在您使用SpreadsheetApp.getActiveSpreadsheet()时才可用。

我尝试使用openById()无济于事。该方法无法使用。

以为我很聪明并尝试了openById然后setActiveSpreadsheet。我不够聪明。


更新,我打开了第1816期“使用google-apps-script-issues http://code.google.com/p/google-apps-script-issues/issues/detail?id=1816

,对象变为全局,自动完成即使在删除时仍然存在”

非常有趣的行为。误导我问错了问题

看起来是GAS编辑器中的错误。

1 个答案:

答案 0 :(得分:4)

以下函数演示了如何在独立脚本中设置命名范围。

function testNamedRange() {
  var ss = SpreadsheetApp.openById('here is the spreadsheet id');
  var range = ss.getRange('Sheet1!A1:B2');
  ss.setNamedRange('TestRange', range);
  var rangeCheck = ss.getRangeByName('TestRange');
  var rangeCheckName = rangeCheck.getA1Notation();
}

rangeCheckName变量包含A1:B2字符串。