实测Gemini写VBA:Excel月度报表一键生成

把一堆销售数据按部门拆开、逐个套上模板、再一份份导出成 PDF——这类重复的报表活儿,几乎每个用 Excel 的人都干过。科技媒体 How-To Geek 的作者托尼·菲利普斯(Tony Phillips)最近做了一次实测:让 Gemini 帮他写一段可复用的 VBA 宏,把这套流程压缩成”点一下按钮”。结果是成功了,但过程远没有”一句话生成代码”那么轻松。

这次测试使用的是 Google Workspace 账号下的 Gemini 3.6 Flash。需要说明的是,可用功能会随账号类型和模型版本不同而有所差异。

先规划,再提问

菲利普斯的经验是:直接对 AI 说”帮我写段 VBA”,基本得不到能用的东西。所以他先把工作簿结构讲清楚。

这个工作簿一共三张表:Sales Data 存放原始数据表,字段包括商品名称、部门、国家、产品、成本、售价、销量、销售额、销货成本和利润;Department Report Template 是报表模板,规定了标题、汇总数字和产品明细表的位置,他特别要求模板本身不能被宏改动,以便后续反复使用;Report Log 则用于记录每次生成的文件,包含生成日期、部门名称、文件名和状态。

他把表名、字段、每个数值该落到模板的哪个单元格、日志怎么写,全部用文字描述给了 Gemini,但没有上传工作簿。这么做是想验证:只靠一份足够详细的书面说明,AI 能不能干活。如果可行,那么以后处理含敏感信息的表格时,就多了一条不必上传文件的路径。

他还提前避掉了一个坑:导出文件的存放位置。此前用 Claude 做类似自动化时他发现,把文件存在工作簿所在目录,一旦牵扯 OneDrive 这类云盘同步就容易出问题。于是他要求 Gemini 把所有 PDF 统一保存到桌面上的一个专用文件夹。

由于这段宏要当成长期工具用,他要求把代码存进 PERSONAL.XLSB 个人宏工作簿,并添加到快速访问工具栏,这样每次打开 Excel 都能直接调用。即便如此,动手测试前他还是先备份了一份工作簿。

提示词的最后一步很关键:他要求 Gemini 在写代码之前,先把理解到的工作簿假设条件复述一遍。Gemini 确认了表名、要用的列以及各项数据的落点位置——这一步相当于在动工前核对图纸。

真正的麻烦出在测试环节

第一版代码只能算起点。第一个问题是 VBA 报语法错误,把出错行和报错信息发回去后,Gemini 指出那一行多写了一个变量名,VBA 无法解析,并给出了修正版本。

更棘手的是第二个问题:宏跑完了,导出的 PDF 却是一片空白。Gemini 判断问题出在打印区域与页面设置(PageSetup)逻辑上,并陆续给出多种改法,但改着改着就陷入了”打补丁循环”——解决一个问题又冒出新的格式问题,方案越来越复杂。

菲利普斯最终没有继续打补丁,而是换了思路:先简化报表模板、砍掉部分指标,再让 Gemini 重写逻辑——复制一份模板工作表、往副本里填数据、直接导出 PDF、最后删除这份临时表,而不是去精细控制导出过程的每个环节。

这也是他认为整场实验最大的收获:AI 排查问题很好用,因为可以把现象讲清楚、一起推演可能的原因;但真正有效的做法,是把 AI 的建议和自己对流程的理解结合起来,并在必要时判断出”该换方案了”。

简化之后,才谈得上加功能

流程理顺之后效果立竿见影。事实证明,Gemini 更擅长在一个能跑通的基础上做改进,而不是一次性搭出整套自动化。

于是他分批把之前砍掉的功能加了回来,还顺手加了几项新的:每份报表添加”生成时间”戳、恢复部分汇总信息、把产品明细表由按销售额排序改为按利润排序、文件名里带上日期和时间以免新报表覆盖旧文件。这些小需求各自目标明确,测试和调整都很轻松。

最终这段宏成了可复用的工具:只要工作簿结构一致就能直接跑,代码常驻个人宏工作簿,入口挂在快速访问工具栏上,一次性实验变成了一键完成的日常流程。

结论:AI 是协作者,不是甩手掌柜

这次测试改变了菲利普斯对 AI 与 Excel 结合方式的看法。他不再指望一条提示词换来完美答案,而是把 Gemini 当作探索思路、排查故障、逐步打磨方案的工具。此前他对比 ChatGPT、Claude 和 Gemini 编写 Excel 公式时也得出过类似结论:这些工具都能给出建议,但使用者仍需具备足够的 Excel 功底,才能判断结果好坏、选对路线,并清楚自己最终想要什么。

来源:How-To Geek(https://www.howtogeek.com/microsoft-excel-google-gemini-automate-reporting-task/)