如何解决从多个不相邻的单元格获取值 修改点:修改后的脚本:注意:参考文献:
我尝试从Google表格中的多个不相邻单元格中获取值(作为数组)。
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var arr = ['C1','C2','C4'];
var val = ss.getRangeList(arr).getValues();
Logger.log(val);
}
我得到了以下内容:
TypeError:ss.getRangeList(...)。getValues不是函数”。
非常感谢您的帮助。
解决方法
该修改如何?
修改点:
- 不幸的是,类RangeList中没有
getValues
的方法。我认为这是您遇到问题的原因。 - 为了从
['C1','C2','C4']
的单元格中检索值,需要使用getRanges
的方法。这样,可以使用getValues
。
这些内容反映到您的脚本后,它将如下所示。
修改后的脚本:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var arr = ['C1','C4'];
var val = ss.getRangeList(arr).getRanges().map(range => range.getValues()); // Modified
Logger.log(val);
}
- 在这种情况下,
val
数组中的每个元素都是二维数组。
注意:
-
在您的情况下,每个单元格都是一个单元格。因此,我认为以下脚本可能也可以使用。
var val = ss.getRangeList(arr).getRanges().map(range => range.getValue());
-
或者,为了从多个不相邻的单元格中检索值,我创建了RangeListApp的Google Apps脚本库。使用该脚本时,您的脚本如下。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheetName = ss.getActiveSheet().getSheetName(); var arr = ['C1','C4']; var rangeList = arr.map(e => `${sheetName}!${e}`); var val = RangeListApp.getSpreadsheet(ss).getRangeList(rangeList).getValues().map(e => e.values); Logger.log(val);
参考文献:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。