我有一张名为First
的表单,其中包含单元格A1中的以下内容(见下文)。
在谷歌电子表格开发过程中手动重复First
之后,我希望重复的单元格A1值为Second Round
,但即使刷新了手动复制并重命名后也是如此表Second
,单元格A1的值为Copy of First Round
。
我可以更改脚本或其他内容以获得我想要的结果Second Round
吗?
A1:= SHEETNAME()&"轮"
访问sheetname的脚本:
function sheetname() {
var sheetname = SpreadsheetApp.getActiveSheet().getName();
return sheetname;
}
答案 0 :(得分:1)
需要某种触发器才能使函数运行。电子表格中单元格中的自定义函数仅在()内的单元格更改时才会运行。您可以将此值设置为较大范围,只要您不包含公式所在的单元格,因为这会导致错误。然后,当单元格更改时,您将获得更新。不幸的是,这不包括对工作表名称更改的引用,例如=getSheetname(Sheet1!B1:Z)
脚本中会发生触发器,并且可能导致给定的函数运行。 onChange触发器必须手动应用于函数,这意味着在脚本编辑器中将其设置在 Edit-> Current project的触发器下。然而,问题是它不会更新任何单元格,除非您在函数中有代码来更改特定单元格。所以你不会在单元格中有一个函数,但这在脚本编辑器中,A13设置为你想要工作表名称的单元格。一旦进入并设置了触发器,更改工作表名称将更改单元格值。
function getSheetname() {
var ss = SpreadsheetApp.getActiveSheet();
var sheetname = ss.getName();
ss.getRange('A13').setValue(sheetname);
return;
}