2

根据文档,有一个名为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

如果是这种情况,我如何从事件源获取活动工作表上的名称范围?谢谢。

4

1 回答 1

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() {/* */}
于 2013-10-20T23:08:15.017 回答