google-sheets - 是否有 Google Sheets 公式可以将工作表的名称放入单元格中?

标签 google-sheets

下图应该会有所帮助:

enter image description here

最佳答案

您有 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/

相关文章:

google-apps-script - EmbeddedChart setOptions 选项在哪里?

python - 有没有办法使用加载的服务帐户来访问 Cloud Run 中的 Google 表格?

google-apps-script - onSelectionChange 在更改选项卡时重新触发自身

javascript - 谷歌应用脚​​本: Trouble Passing URL Params from doGet() to doPost()

arrays - 具有数组公式的列中的可编辑单元格

javascript - 查询错误 : Invalid JSON string when Creating a Chart from a Spreadsheet? GAS

javascript - 如何在 Sheetrock 中使用 LIKE 运算符

google-sheets - Google 表格中查询命令 ORDER BY 的问题

javascript - 结构化 JSON 项的正则表达式匹配

python - 当我尝试将数字附加到 Python 中的列表并将该列表发送到 Google Sheets 列时出现错误 'Invalid values[1][0]: list_value'