【发布时间】:2013-02-12 14:29:58
【问题描述】:
我正在尝试为我的学校项目创建一个通用时间表。我创建了一个简单的函数来获取活动工作表的名称。
function SetSheetName() {
var Sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
return Sheet.getName();
}
我第一次使用它就很好用。但是,如果我更改工作表的名称并重新调用该函数,它仍然会获取工作表的旧名称。
例如,如果工作表的名称是“Sheet1”并且我在一个单元格中运行该函数,则单元格的值将是 Sheet1。但是如果我更改同一张表的名称并重新调用该函数,无论如何我仍然会得到 Sheet1。
我猜这是谷歌文档的运作方式,但我不知道如何解决这个问题。
【问题讨论】:
-
如何更改工作表的名称?我只是手动更改了工作表的名称,它似乎对我有用。
-
也可以直接拨打
SpreadsheetApp.getActiveSheet()。 =) -
你怎么知道它没有获取工作表的新名称?你在使用记录器吗?还是 Browser.msgBox?
-
如果您作为自定义函数运行,即在电子表格单元格中,那么我知道刷新自定义函数的唯一方法是强制它重新计算(显然,这不是通过更改来实现的工作表名称)。一种可能对您有用的(丑陋的)方法是使用每分钟重新计算自身的函数强制重新计算,即 GOOGLECLOCK。所以你会像这样运行你的函数: =SetSheetName(GOOGLECLOCK()) ... 但请记住它不是即时的,因为输出仅每 1 分钟重新计算一次。
-
@10basetom - 该行为是Issue 3522,此后已得到修复。
标签: google-apps-script google-sheets