Google表格脚本需求:按钮触发弹窗选择分组工作表
实现Google表格分组菜单弹窗跳转功能(无代码基础版)
步骤1:打开Apps Script编辑器
- 打开你的Google表格,点击顶部菜单栏的「扩展程序」→「Apps Script」,进入脚本编辑页面。
步骤2:替换默认代码
删除编辑器里的所有默认代码,粘贴下面的完整代码:
// 表格打开时创建自定义菜单 function onOpen() { const ui = SpreadsheetApp.getUi(); // 创建主菜单,可根据需要修改菜单名称 ui.createMenu('教师信息管理') .addItem('录入已获批教师信息', 'showRegionSheetPicker') // 如需添加更多分组菜单,复制此行并修改参数,例如:.addItem('查看教师统计', 'showStatsSheetPicker') .addToUi(); } // 弹出区域工作表选择弹窗 function showRegionSheetPicker() { const ui = SpreadsheetApp.getUi(); // 这里替换成你实际的4个区域工作表名称,必须和表格里的工作表名完全一致 const regionSheets = [ '华东区域录入表', '华北区域录入表', '华南区域录入表', '西南区域录入表' ]; // 生成弹窗按钮 const buttonChoices = regionSheets.map(sheetName => ui.ButtonSet.createButton(sheetName)); const buttonSet = ui.ButtonSet.addButtons(buttonChoices); // 显示选择弹窗 const userResponse = ui.prompt( '选择目标区域', '点击下方按钮跳转至对应录入表:', buttonSet ); // 处理用户选择 if (userResponse.getSelectedButton() !== ui.ButtonSet.CLOSE) { const targetSheetName = userResponse.getSelectedButton().getCaption(); const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); const targetSheet = activeSpreadsheet.getSheetByName(targetSheetName); if (targetSheet) { activeSpreadsheet.setActiveSheet(targetSheet); } else { ui.alert('错误:未找到名为"' + targetSheetName + '"的工作表,请检查名称是否正确!'); } } }
步骤3:自定义分组配置
- 找到代码里的
regionSheets数组,把里面的示例名称替换成你实际的4个区域工作表的准确名称(大小写、空格必须和表格里的完全一致,否则会找不到工作表)。 - 如果需要添加更多分组菜单:
- 复制
showRegionSheetPicker函数,重命名为新的函数名(比如showStatsSheetPicker)。 - 修改新函数里的工作表数组,换成对应分组的工作表名称。
- 在
onOpen函数的ui.createMenu部分,添加一行.addItem('你的新菜单名称', '新函数名')。
- 复制
步骤4:保存并启用功能
- 点击脚本编辑器顶部的「保存」按钮,给项目起个简单的名字(比如「教师菜单工具」)。
- 回到Google表格,刷新页面,顶部菜单栏会出现你创建的自定义菜单(比如「教师信息管理」)。
- 第一次点击菜单选项时,会弹出授权提示,按照页面指引完成授权(需要允许脚本访问你的表格数据,这是安全操作)。
步骤5:测试功能
点击「教师信息管理」→「录入已获批教师信息」,会弹出带有4个区域按钮的弹窗,点击任意按钮即可跳转至对应的工作表。如果工作表名称有误,会弹出错误提示帮你排查问题。
内容的提问来源于stack exchange,提问作者Miguel De los Santos
相关产品推荐
相关产品推荐

