Excel VBA SubmitButton宏转Google Sheets可运行脚本求助
VBA转Google Sheets脚本解决方案
操作步骤
- 打开你的Google Sheets文件,点击顶部菜单栏「扩展程序」-「Apps 脚本」
- 清空默认的代码编辑区内容,粘贴下方提供的完整代码
- 点击保存按钮,命名项目(比如「PM表单提交」),按照提示授权脚本访问表格的权限
- 回到表格页面,选中你要绑定功能的按钮(可以用「插入」-「绘图」自行制作提交按钮),点击按钮右上角三个点,选择「分配脚本」,输入
SubmitButton后确认即可
完整适配脚本
完全对齐你原有VBA的功能逻辑,仅复制纯数值不携带格式/公式:
function SubmitButton() { // 获取当前表格文件对象 const ss = SpreadsheetApp.getActiveSpreadsheet(); // 绑定对应工作表 const entrySheet = ss.getSheetByName("PM Entry"); const trackingSheet = ss.getSheetByName("PM Tracking"); // 计算目标行:Tracking表A列最后一个非空行的下一行 const targetRow = trackingSheet.getRange("A:A").getValues().filter(String).length + 1; // 源单元格地址数组、目标列数组,和原VBA配置完全一致 const sourceCells = ["D5", "H5", "D7", "D9", "H7", "H9", "D15", "D16", "D18", "H15", "H16", "H18", "D24", "D25", "D27", "H24", "H25", "H27", "D34", "D35", "D37", "H34", "H35", "H37", "D43", "D44", "D46"]; const targetCols = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA"]; // 循环写入数值 for (let i = 0; i < sourceCells.length; i++) { const cellValue = entrySheet.getRange(sourceCells[i]).getValue(); trackingSheet.getRange(targetCols[i] + targetRow).setValue(cellValue); } // 如需提交后自动清空录入表单,取消下一行注释即可 // entrySheet.getRangeList(sourceCells).clearContent(); }
说明
- 首次运行时会触发Google的权限校验,按照提示点击「高级」-「前往[你的项目名]」完成授权即可,无安全风险
- 后续如果需要调整源单元格、目标列的对应关系,直接修改代码里的
sourceCells和targetCols数组即可,和你原有VBA的调整逻辑完全一致
内容的提问来源于stack exchange,提问作者Christopher Vest
相关产品推荐
相关产品推荐

