You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据另一单元格变更自动在Google Sheet单元格填入工作表名称

解决方案

1. 编写触发脚本实现变更追踪

替换你现有的mySheetName函数,用下面的onEdit触发器脚本,实现当B列内容修改时,自动将当前工作表名称写入对应C列单元格(仅在内容变更时更新,保留历史记录):

function onEdit(e) {
  const range = e.range;
  const sheet = range.getSheet();
  
  // 仅处理B列的编辑事件
  if (range.getColumn() === 2) {
    const targetCell = sheet.getRange(range.getRow(), 3);
    // 获取当前工作表名称并写入C列对应行
    targetCell.setValue(sheet.getName());
  }
  
  // 处理工作表重命名时的批量更新(可选:若需要同步C列中旧表名到新表名)
  // 若不需要此功能可删除以下代码块
  if (e.changeType === 'OTHER' && e.source.getActiveSheet().getName() !== sheet.getName()) {
    const oldName = sheet.getName();
    const newName = e.source.getActiveSheet().getName();
    const dataRange = sheet.getDataRange();
    const values = dataRange.getValues();
    
    // 遍历C列,替换旧表名为新表名
    for (let i = 0; i < values.length; i++) {
      if (values[i][2] === oldName) {
        values[i][2] = newName;
      }
    }
    dataRange.setValues(values);
  }
}

脚本说明

  • 核心逻辑:监测B列(第2列)的编辑操作,一旦单元格内容修改,立即将当前工作表名称写入对应行的C列(第3列),自动覆盖旧值,确保C列始终记录最后一次变更的版本(工作表名)。
  • 可选逻辑:当工作表被重命名时,自动批量更新该工作表C列中所有旧的表名为新名称。若你希望保留变更发生时的原始表名(即使后续工作表改名),可删除这部分代码。

2. 设置条件格式实现高亮

  1. 选中C列整列(点击列标C)。
  2. 点击顶部菜单栏「格式」→「条件格式」。
  3. 在右侧面板中,设置规则为:
    • 格式规则:自定义公式
    • 输入公式:=C1=CELL("filename",A1)
    • 设置高亮样式(比如填充黄色)。
  4. 点击「完成」即可。

格式说明

公式=C1=CELL("filename",A1)会自动获取当前工作表名称,当C列单元格值与当前表名一致时,触发高亮样式,无需手动更新。

3. 注意事项

  • 脚本需要授权:首次运行脚本时,会弹出权限请求,按提示授权即可(仅对你的表格有访问权限)。
  • 复制工作表的处理:复制工作表后,新表的onEdit触发器会自动生效,在新表编辑B列时,会写入新表的名称。
  • 历史记录保留:脚本仅在B列内容变更时更新C列,未修改的行C列值会保持原有记录,不会被覆盖。

内容的提问来源于stack exchange,提问作者Raghad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 05:35:12