如何修改Google Apps Script,实现复制工作表后弹窗重命名?
实现带命名弹窗的工作表复制功能
完全可以实现这个需求,修改后的脚本会在运行时弹出输入框让你指定新工作表的名称,同时处理空输入和重复名称等异常情况:
function TemplateDuplication() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const activeSheet = ss.getActiveSheet(); // 弹出输入框获取新工作表名称 const newSheetName = Browser.inputBox('为新工作表命名', '请输入新工作表的名称:', Browser.Buttons.OK_CANCEL); // 判断用户是否点击取消或输入为空 if (newSheetName === 'cancel' || newSheetName.trim() === '') { SpreadsheetApp.getUi().alert('未输入有效名称,操作已取消'); return; } try { // 复制当前工作表并移动到左侧第一位 const newSheet = activeSheet.copyTo(ss); ss.setActiveSheet(newSheet); ss.moveActiveSheet(1); // 重命名新工作表 newSheet.setName(newSheetName); } catch (e) { // 处理重复名称、非法字符等错误 SpreadsheetApp.getUi().alert('操作失败:' + e.message); } }
关键功能说明:
- 用
Browser.inputBox()创建带输入框的弹窗,支持确认/取消操作 - 增加空输入和取消操作的判断,避免无效执行
- 通过
try-catch捕获重命名时的异常(比如名称重复、包含特殊字符) - 调整执行逻辑,先复制工作表再移动并重命名,流程更清晰
内容的提问来源于stack exchange,提问作者DennisAlexander
相关产品推荐
相关产品推荐

