2013-02-12 194 views
2

我正在嘗試爲我的學校項目創建一個通用時間表。我創建了一個簡單的函數來獲取活動工作表的名稱。getActiveSpreadsheet()。getActiveSheet()。getName()不用新的工作表名稱更新

function SetSheetName() { 
var Sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 

    return Sheet.getName(); 
} 

它在我第一次使用它時工作得很好。但是,如果我更改工作表的名稱並重新調用該函數,它仍然會獲取工作表的舊名稱。

例如,如果工作表的名稱是「Sheet1」,並且我在單元格中運行該功能,則單元格值將爲Sheet1。但是,如果我更改同一張表的名稱並重新調用該函數,則無論如何我仍然會獲得Sheet1。

我想這是谷歌文檔的功能,但我不知道如何解決這個問題。

+0

你如何更改工作表的名稱?我只是手動更改了工作表的名稱,它似乎適用於我。 – 2013-02-12 15:26:02

+0

另外,您可以直接調用'SpreadsheetApp.getActiveSheet()'。 =) – 2013-02-12 15:26:28

+0

你怎麼知道它沒有獲取表單的新名稱?你在使用記錄器嗎?或Browser.msgBox? – 2013-02-12 16:01:25

回答

1

恩裏克提供了一個很好的解釋,爲什麼這樣的自定義功能不會在Script to summarise data not updating更新。

歸結爲Google表格中的優化決定;自定義函數只有在其參數發生變化時纔會被重新評估。你的函數沒有參數 - 所以當電子表格打開時,它不會被重新評估。

0123t函數David Tew提到提供了一個每分鐘一次的變化參數,該參數引起函數的重新評估,但在「新表格」中不可用。所以你沒有幸運。