2013-10-20 111 views
2

根據documentation,在Spreadsheet類中有一個名爲getRangeByName(String)的函數,但它對我來說似乎沒有定義。Speadsheet.getRangeByName is undefined

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

如果是這樣的話,我怎麼能在從事件的源活動表獲得一定範圍內的名字?謝謝。

回答

2

通過做var ss = e.source.getActiveSheet();變量ss是工作表類型,而不是類型的電子表格,所以問題。方法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() {/* */}