电子表格容器外的setNamedRange()? [英] setNamedRange() outside of the spreadsheet container?

查看:100
本文介绍了电子表格容器外的setNamedRange()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



尽我所能, setNamedRange()方法只是可以从Spreadsheet容器中获得,并且只有当您使用 SpreadsheetApp.getActiveSpreadsheet()



c $ c> openById()无济于事。该方法是不可用的。



以为我很聪明,并尝试openById然后setActiveSpreadsheet。我不是很聪明。




更新,我打开问题1816对象变成全局的, with google-apps-script-issues http: //code.google.com/p/google-apps-script-issues/issues/detail?id=1816



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



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

解决方案

下面的函数演示了如何在独立脚本中设置命名区域。



$ p $ function testNamedRange() {
var ss = SpreadsheetApp.openById('这里是电子表格ID');
var range = ss.getRange('Sheet1!A1:B2');
ss.setNamedRange('TestRange',range);
var rangeCheck = ss.getRangeByName('TestRange');
var rangeCheckName = rangeCheck.getA1Notation();

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


I've tried as many combinations as I could come up with.

My goal is to have a Google Apps Script running StandAlone or from a Library and be able to set Named Ranges in a spreadsheet.

As best I can figure it, the setNamedRange() method is only available from within the Spreadsheet container and only when you use SpreadsheetApp.getActiveSpreadsheet().

I tried using openById() to no avail. The method is just not available.

Thought I was clever and tried openById then setActiveSpreadsheet. I wasn't clever enough.


Update, I opened issue 1816 "Object become global, auto complete persists even when deleted" with google-apps-script-issues http://code.google.com/p/google-apps-script-issues/issues/detail?id=1816

Quite interesting behavior. Misled me into asking the wrong question

Looks to be a bug in the GAS editor.

解决方案

The following function demonstrates how to set a named range in a standalone script.

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();
}

The rangeCheckName variable contains the A1:B2 string.

这篇关于电子表格容器外的setNamedRange()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆