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

如何使用Google Apps Script获取下拉列表选中值并重命名工作表

Google表格下拉选择自动修改工作表名称方案

现有代码存在两个核心问题:

  • 调用secondSheet.setName()时传入的是Range对象,而非单元格实际值,需要补充.getValue()方法获取内容
  • 没有绑定编辑触发逻辑,无法实现选择下拉后自动执行改名操作

修正后完整代码

function renameSheet(e) {
  // 获取当前活跃表格
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  // 获取对应工作表
  var dataSheet = ss.getSheetByName("Data");
  var secondSheet = ss.getSheets()[1];

  // ========== 初始化下拉列表 ==========
  var partCell = secondSheet.getRange('A3'); 
  var partLastRow = dataSheet.getLastRow();
  var partRange = dataSheet.getRange('A2:A' + partLastRow);
  var partRule = SpreadsheetApp.newDataValidation().requireValueInRange(partRange).build();
  partCell.setDataValidation(partRule);

  // ========== 编辑触发自动改名 ==========
  // 判断是否是第二张表的A3单元格被编辑,避免无效触发
  if (e && e.source.getActiveSheet().getIndex() == 2 && e.range.getA1Notation() == 'A3') {
    // 读取A3的实际值,传入setName方法
    var newName = secondSheet.getRange("A3").getValue();
    // 加个非空判断,避免空值改名
    if (newName.toString().trim() != '') {
      secondSheet.setName(newName);
    }
  }
}

配置操作步骤

  • 打开你的Google表格,点击顶部菜单栏「扩展程序」>「Apps 脚本」进入脚本编辑器
  • 删除编辑器内原有代码,粘贴上述修正后的代码,点击保存
  • 首次需要手动运行一次renameSheet函数,按照页面提示完成脚本权限授权,完成后第二张表的A3单元格就会生成对应下拉选项
  • 配置自动触发规则:
    • 点击脚本编辑器左侧侧边栏的「触发器」图标(时钟样式)
    • 点击右下角「添加触发器」按钮
    • 选择要运行的函数:renameSheet
    • 选择事件来源:电子表格
    • 选择事件类型:编辑时
    • 其余选项保持默认,点击保存即可

注意事项:

  • 提前在名为Data的工作表A列从A2行开始填入所有可选的工作表名称
  • 工作表名称不能包含/ \ ? * : [ ]等特殊字符,也不能和当前表格内已有工作表重名,否则会执行报错
  • 如果修改了Data表A列的可选名称列表,重新运行一次renameSheet函数即可更新下拉选项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:54:04