最佳答案
您有 2 个选择,我不确定我是否是其中任何一个的粉丝,但这是我的意见。你可能会有不同的感受:
选项 1:强制函数运行。
除非引用已更改的单元格,否则单元格中的函数不会运行。更改工作表名称不会触发电子表格中的任何功能。但是我们可以通过向函数传递一个范围来强制函数运行,每当该范围内的项目发生变化时,该函数就会触发。
您可以使用以下脚本创建一个自定义函数,该函数将检索名称:
function mySheetName() {
var key = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
return key;
}
并在单元格中放置以下内容:
=mySheetName(A1:Z)
现在,如果该传递范围内的单元格中的任何值发生更改,脚本将运行。这需要一秒钟来运行脚本并在每次更改任何值时在单元格中设置一条消息,因此这可能会很快变得烦人。如前所述,它还需要更改范围才能触发它,因此对相当静态的文件没有真正的帮助。
选项 2:使用 OnChange 事件
虽然运行时间感觉比上述选项更好,并且这不取决于电子表格单元格中的值更改,但我不喜欢这样,因为它强制名称的去向。如果您愿意,您可以使用“实用工具”表在各种表中定义此位置。以下是基本想法,如果您喜欢此选项,可能会帮助您入门。
当工作表名称更改时触发 OnChange 事件。您可以使下面的代码更复杂以检查错误,检查工作表 ID 以仅在给定工作表上工作等。但是,基本代码是:
function setSheetName(e) {
var key = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange('K1').setValue(key);
}
保存代码后,在脚本编辑器中将 Current Project 的 On Change Trigger 设置为此函数。它将在任何更改事件中将工作表名称写入单元格 K1。要设置触发器,请选择 当前项目的触发器 下编辑 菜单。
关于google-sheets - 是否有 Google Sheets 公式可以将工作表的名称放入单元格中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45502538/