2012-09-07 95 views
1

我試過儘可能多的組合,因爲我可以想出。setNamedRange()在電子表格容器之外?

我的目標是讓Google Apps腳本運行StandAlone或從庫中運行,並且能夠在電子表格中設置命名範圍。

盡我所能,setNamedRange()方法只能在電子表格容器中使用,並且只能在使用SpreadsheetApp.getActiveSpreadsheet()時使用。

我試過使用openById()無濟於事。該方法不可用。

以爲我很聰明,並嘗試openById然後setActiveSpreadsheet。我不夠聰明。


更新,我開的問題1816「對象成爲全球性的,當刪除自動完成,即使堅持」與谷歌 - 應用程序 - 腳本的問題http://code.google.com/p/google-apps-script-issues/issues/detail?id=1816

挺有意思的行爲。誤導我問錯問題

看起來是GAS編輯器中的一個錯誤。

回答

3

以下函數演示如何在獨立腳本中設置命名範圍。

function testNamedRange() { 
    var ss = SpreadsheetApp.openById('here is the spreadsheet id'); 
    var range = ss.getRange('Sheet1!A1:B2'); 
    ss.setNamedRange('TestRange', range); 
    var rangeCheck = ss.getRangeByName('TestRange'); 
    var rangeCheckName = rangeCheck.getA1Notation(); 
} 

rangeCheckName變量包含A1:B2字符串。

+0

整潔的演示;-) –

+0

@Sergeinsas,試圖寫出小而明確的代碼:) – megabyte1024

+0

我做的事情創建了奇怪的全局變量。這是給我的印象setNamedRange未按預期工作。感謝代碼。它效果很好。我在GAS環境中做的其他事情,我會重新進入。謝謝!吉姆 – JimCampbell