不少做数据汇总的上班族都有同一套固定动作:打开销售明细表,按部门筛选,把数据填进报表模板,另存为 PDF,再换下一个部门重来一遍。数据本身没什么难度,麻烦的是每个月都要重复几十次。

How-To Geek 撰稿人 Tony Phillips 做了一次完整实验:把这套流程交给 AI,让它写出一个可复用的 VBA 宏——读取销售数据、按部门拆分、生成各自的业绩报表并导出为 PDF。最终结果是一个存进个人宏工作簿、点一下就跑完的工具。他使用的是 Google Workspace 账户下的 Gemini 3.6 Flash,具体可用功能会随账户类型和模型版本不同而变化。以下是他走通这条路的过程与关键做法。
一、先把工作簿结构说清楚,再让AI动手
直接甩一句”帮我写段 VBA”,是他此前踩过的坑。这次他在提示词里把结构写得很细:
- 说明工作表分工。
Sales Data表存放明细数据表格,包含品名、部门、国家、产品、成本、售价、销量、销售额、销货成本、利润等列;Department Report Template表是每份 PDF 的版式,含标题、汇总数字和一个待填充的产品表格;Report Log表用于记录每次生成的文件,包括创建日期、部门名称、文件名与状态。 - 明确”模板不许被改动”。他要求宏不能永久修改原始版式,以便模板长期复用。
- 逐项交代对应关系。工作表名称、数据表各列、每个数值应落在报表模板的哪个单元格、日志如何写入,全部写明。
- 不上传工作簿文件,只用文字描述规格。这样做是为了验证一件事:当表格里含有不便外传的内部信息时,纯文字说明能否达到同样效果。
二、在提示词里提前堵住三个坑
- 指定输出路径。他此前用其他 AI 做 Excel 自动化时发现,把生成文件存到工作簿所在目录,一旦涉及 OneDrive 之类的云盘同步就容易出问题。这次直接要求所有 PDF 存入桌面上的一个专用文件夹。
- 让宏变成常驻工具。要求把代码保存到 PERSONAL.XLSB 个人宏工作簿,并添加到快速访问工具栏,这样每次打开 Excel 都能直接调用。
- 要求 AI 先复述再写码。提示词最后一句是:把上述说明整理成一份”工作簿假设清单”,再开始生成 VBA。Gemini 随后确认了工作表名称、要用到的列、部门名称与汇总数字所在单元格。这一步相当于在写代码前先核对理解是否一致。
即便如此,他仍在测试前复制了一份工作簿备份。
三、报错原文直接喂回去
第一版代码能跑但不完善。VBA 编辑器提示语法错误后,他把 Excel 的报错文字连同出问题的那一行代码一起发给 Gemini,对方指出该行多了一个 VBA 无法解析的变量名,并给出修正版本,宏随即正常运行。
更棘手的是导出的 PDF 完全空白。宏在跑,报表却没内容。排查指向宏在导出工作表时的打印区域与 PageSetup 逻辑。Gemini 给了好几种改法,但改完一处又冒出新的排版问题,陷入了”打补丁螺旋”。
四、越改越乱时,换思路而不是继续打补丁
他最终放弃继续修补,转而简化方案:先精简报表模板、删掉部分指标,再要求宏改走另一条路径——复制一份报表模板生成临时工作表,把数据填进去,直接导出为 PDF,然后删除这张临时表,不再试图控制导出过程的每个环节。改完之后流程一次跑通。
五、跑通之后再逐项加回功能
有了能稳定运行的底子,他才开始小步添加需求:给每份报表加上”生成时间”戳、恢复部分此前删掉的汇总信息、把产品表格的排序依据从销售额改为利润、在文件名中加入日期与时间以免新报表覆盖旧文件。每次只改一件事,测试和验证都更容易。
注意事项
这次实验给出的经验是:AI 在”已有可运行版本的基础上迭代改进”时表现明显更好,一次性生成整套自动化则容易失控。使用者仍需具备足够的 Excel 知识,才能判断建议是否合理、在什么时候该推翻整个思路。此外,任何自动生成的宏在正式使用前都应先在备份文件上测试。
来源:How-To Geek