2013-02-12 84 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提到提供了一个每分钟一次的变化参数,该参数引起函数的重新评估,但在“新表格”中不可用。所以你没有幸运。