根据documentation,在Spreadsheet类中有一个名为getRangeByName(String)
的函数,但对我来说似乎没有定义。
function onEdit(e) {
if (e) {
var ss = e.source.getActiveSheet();
Logger.log(ss.getName);
Logger.log(ss.getRange);
Logger.log(ss.getRangeByName);
}
}
// outputs:
// function getName() {/* */}
// function getRange() {/* */}
// undefined
这是因为event.source.getActiveSheet()
返回除Spreadsheet
对象以外的其他内容,这与官方文档(屏幕截图)相矛盾吗?
(https://developers.google.com/apps-script/understanding_events)
如果是这种情况,我如何从活动源的活动表格中获取名称范围?感谢。
答案 0 :(得分:2)
通过执行var ss = e.source.getActiveSheet();
变量ss
是Sheet类型,而不是Spreadsheet类型,所以问题就出现了。方法getRangeByName(name)
属于电子表格。
尝试以下方法:
function onEdit(e) {
if (e) {
var ss = e.source;
var s = ss.getActiveSheet();
Logger.log(s.getName);
Logger.log(s.getRange);
Logger.log(ss.getRangeByName);
}
}
// outputs:
// function getName() {/* */}
// function getRange() {/* */}
// function getRangeByName() {/* */}