google-apps-script - 有没有更简单的方法来实现缺少的“getNamedRange(....)”方法?
问题描述
在 Google Apps 脚本中,电子表格和表格上有一个方法 getNamedRanges(),它返回命名范围的列表。但是没有返回 SINGLE 命名范围的 getNamedRange("Name") 。
这对我来说似乎很奇怪。
为了解决这个问题,我正在使用这个复杂的过程:
function testing()
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var nameOfNamedRange = "NameOfMyNamedRange";
var namedRanges = ss.getNamedRanges();
/* ###### THIS IS WHAT I HAVE TO DO ######### */
for (i = 0; i<namedRanges.length; ++i)
{ var nRange = namedRanges[i];
if ( nRange.getName() == nameOfNamedRange )
{
/* Process nRange
doSomething(nRange);
*/
Logger.log(nRange.getName());
}
}
/* ############ THIS IS WHAT I'D LIKE TO DO (or something similar) ##########
var nRange = ss.getNamedRange("NameOfMyNamedRange") // ...Range not ...Ranges
*/
}
有没有更简单的方法来做到这一点?我忍不住想我错过了一些明显的东西。
解决方案
例如,使用 的方法怎么样getRangeByName()
?
修改后的脚本:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var nameOfNamedRange = "NameOfMyNamedRange";
var nRange = ss.getRangeByName(nameOfNamedRange); // Added
参考:
编辑:
当您想要检索单个命名范围时,下面的示例脚本怎么样,因为没有直接检索单个命名范围的方法?命名范围的名称在电子表格中只有一个。这个可以用。请认为这只是几个答案之一。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var nameOfNamedRange = "NameOfMyNamedRange";
var nRange = ss.getNamedRanges().filter(function(e) {return e.getName() === nameOfNamedRange})[0]; // Added
推荐阅读
- php - PHP/SQL/AJAX - 根据先前选择的选项更新下拉菜单中的选项
- rxjs - 使用 Rx 进行递归调用
- java - 无法从类 com.sun.jna.Native 获取静态方法 fromNative(Method, Object)
- r - 在数据帧 R 中搜索时间戳异常
- asp.net - 带有链接的 web 配置字符串 asp.net webform
- c# - 上传带有帖子的文件以及带有模型的其余表单数据
- vba - 在 Word 文档的表格上分配列宽
- angular - 批量运行时量角器出现超时错误,但单独运行时工作正常?
- apache-spark - 如何在 Spark 中命名 DataFrame 以使 DAG 图更易于阅读?
- python - 自动将对象从类转换为子类