根据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 )
如果是这种情况,我如何从事件源获取事件工作表上的名称范围?谢谢。
最佳答案
通过执行 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() {/* */}
https://stackoverflow.com/questions/19482113/