Excel动态复制隐藏工作表的VBA代码如何转换为Google Script
Excel VBA转Google Sheets等效实现脚本
下面是和你原VBA功能完全对应的Google Apps Script代码:
function NewSheet() { // 获取当前打开的表格文件 const ss = SpreadsheetApp.getActiveSpreadsheet(); // 记录当前激活的原工作表 const originalSheet = ss.getActiveSheet(); // 复制原工作表生成新表 const newSheet = originalSheet.copyTo(ss); // 将新表移动到所有工作表的末尾 ss.setActiveSheet(newSheet); ss.moveActiveSheet(ss.getSheets().length); // 生成M.d.yy格式的日期字符串 const today = new Date(); const formattedDate = Utilities.formatDate(today, Session.getScriptTimeZone(), "M.d.yy"); // 给新表按日期命名 newSheet.setName(formattedDate); // 新表A1单元格填入当前日期 newSheet.getRange("A1").setValue(today); // 隐藏原工作表 originalSheet.setHidden(SpreadsheetApp.SheetVisibility.HIDDEN); }
使用方法
- 打开目标Google Sheets文件,点击顶部菜单栏「扩展程序」→「Apps 脚本」,打开脚本编辑器
- 删除编辑器中默认的空代码,粘贴上述代码,点击保存按钮,自定义项目名称后保存
- 首次运行需要给脚本授权表格访问权限,按页面提示完成授权即可正常使用
- 后续可以直接在脚本编辑器点击运行按钮执行,也可以自定义表格菜单绑定该函数,实现表格内一键调用
注意事项
- 如果日期显示时区不符合需求,可以将代码中的
Session.getScriptTimeZone()替换为对应时区字符串,国内用户可替换为"Asia/Shanghai" - 同一日期多次运行会因重名报错,有高频使用需求可以自行添加重名判断逻辑,给重复日期的表添加数字后缀即可
内容的提问来源于stack exchange,提问作者Gojilla
相关产品推荐
相关产品推荐

