Spreadsheet.getRangeByName未定义

时间:2013-10-20 19:55:55

标签: google-apps-script google-sheets

根据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对象以外的其他内容,这与官方文档(屏幕截图)相矛盾吗?

enter image description herehttps://developers.google.com/apps-script/understanding_events

如果是这种情况,我如何从活动源的活动表格中获取名称范围?感谢。

1 个答案:

答案 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() {/* */}