【发布时间】:2017-11-13 16:04:24
【问题描述】:
我在 Google 表格中编写了一个脚本来返回给定表格的名称(见下文)。
函数被写入汇总表,其中输入作为所需表的索引给出。我已经预先编写了所有功能,例如
A1 = GetSheet(1) B1 = GetSheet(2) C1 = GetSheet(3) ...等
显然,当带有相关索引的工作表尚不存在时,我会收到错误消息。但是,当我创建该工作表时,单元格不会自动更新为新工作表的名称,它仍然返回错误。要显示名称,我必须删除该函数并重新粘贴。
有没有办法让单元格在添加新工作表时自动更新,而无需重新键入函数?
抱歉,如果我遗漏了一些明显的东西,我对此很陌生!
function GetSheet(input)
{
var spread = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = SpreadsheetApp.getActiveSheet();
var sourceIndex = sourceSheet.getIndex();
var nextIndex = sourceIndex + 1;
var ss = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(ss.getSheets()[input]);
var active = ss.getActiveSheet();
var name = active.getName();
return name
}
【问题讨论】:
-
函数的前 4 行似乎没有做任何事情来生成返回值。另外,请看一下:电子表格
change事件 (developers.google.com/apps-script/guides/triggers/events#change) 以捕获更改并触发脚本进行更新。此外,为什么不先获取所有工作表的名称,然后使用range.setValues()(developers.google.com/apps-script/reference/spreadsheet/…) 将它们粘贴到摘要表中 -
@DeanRansevycz 感谢您注意到前 4 行,我将删除。从旧版本。我会看看
change。首先查找工作表名称的问题是,在创建之前我不知道它们是什么!
标签: google-apps-script google-sheets custom-function