乐于分享
好东西不私藏

抛弃手工 Excel 公式!用 DeepSeek 写一段 VBA,研发辅助账一键自动生成

抛弃手工 Excel 公式!用 DeepSeek 写一段 VBA,研发辅助账一键自动生成

user@ai-lab:~$ ./start_vba.sh

> 系统初始化完成。准备生成研发辅助账VBA宏。

📋 核心摘要:抛弃手工Excel公式,用DeepSeek写一段VBA代码,实现研发辅助账一键生成。本文包含完整Prompt、代码定制方法和配套模板,零VBA基础也能上手。

💡 今日AI小技巧

让DeepSeek写VBA代码时,在Prompt里加上这句:"请在代码中添加详细的注释,说明每一段逻辑对应的财税政策依据"。这样生成的VBA代码自带"政策说明书",将来税务局来查,你把代码打印出来都能当备查说明用。

做研发费用辅助账的人,都有一个共同的噩梦:公式错一行,加班到天亮。

我上季度就经历过。12个研发人员、3个项目、40多张领料单,Excel里拉了七八个sheet,VLOOKUP套IFERROR再套SUMIFS,公式长得能写一篇小作文。好不容易算出个数,发现A项目的折旧多摊了3000块——回头找原因,是设备C的工时占比引用了错误的单元格。改一个数,整个表重算一遍。

那个时候我就在想:如果有个按钮,点一下就能自动跑完所有分摊和汇总,该多好。

后来我用DeepSeek写了一段VBA代码,把这个"按钮"给做出来了。

现在每季度做研发辅助账,我的流程是这样的:打开Excel → 把原始数据粘贴到三个sheet → 点击"生成辅助账"按钮 → 喝口咖啡 → 完事。

下面把这段VBA代码的生成过程、完整代码、以及怎么让它适配你公司的情况,完整拆出来。

01 // 为什么是VBA,而不是函数公式

先说清楚,Excel公式和VBA的区别,用研发辅助账的场景来解释最直观:

对比维度
Excel公式
VBA宏
复杂分摊
多层嵌套IF+SUMIFS+VLOOKUP,公式可读性差
用循环和条件判断,逻辑清晰
多步骤操作
每个步骤手动执行,容易遗漏
一键顺序执行:分摊→判断上限→生成台账→格式美化
表格新增/删除行
公式需要手动拖拽更新
代码自动识别数据范围
报错排查
一个#REF!能让你找半小时
代码报错有行号,秒定位
给同事用
"别碰这个单元格,公式在里面"
"点这个按钮就行"

简单说:公式适合一次性计算,VBA适合重复性流程。研发辅助账属于后者——每季度都要做一遍,逻辑固定,只是数据换了一批。

而DeepSeek的价值在于:你不需要会写VBA。你只需要用清晰的中文告诉它"我要什么",它会帮你把代码写出来。

02 // 让DeepSeek写出第一版VBA代码

下面这条指令,是我反复调了五版之后沉淀下来的。你可以直接拿去用。

指令:生成研发辅助账VBA宏

📝 Prompt

是一位精通Excel VBA编程的财务自动化专家。请帮我写一段VBA宏代码,
实现以下功能:

【背景】
我有一个Excel工作簿,里面有三个工作表:
1. Sheet"人员工时":存放研发人员的薪酬和项目工时数据
2. Sheet"设备折旧":存放研发设备的折旧信息和工时记录
3. Sheet"直接投入":存放研发领料单明细

【需求】
请在当前工作簿中新建一个Sheet"研发辅助账",点击按钮后自动执行以下操作:

一、人员人工费用分摊
- 从"人员工时"表中读取:姓名、年薪、各项目工时占比
- 项目列表从工时列的标题自动识别
- 根据工时占比,将年薪按比例拆分到各项目
- 非研发工时部分单独标注"不可加计扣除"
- 在"研发辅助账"表中写入分摊结果

二、折旧费用分摊
- 从"设备折旧"表中读取设备信息和工时记录
- 采用年限平均法:年折旧额 = 原值 × (1-残值率) / 折旧年限
- 闲置工时不计入分配基数
- 生产工时对应的折旧计入"不可加计扣除"

三、直接投入费用归集
- 读取领料单,自动判断可扣除性
- 用途含"办公"、"耗材"等关键词的,标注"不可扣除"
- 用途为空或模糊的,标注"需核实"

四、其他相关费用处理
- 留出手动填入行
- 自动计算10%上限:限额 = 前五类费用之和 × 10/90
- 超限红色字体警告

五、汇总和格式
- 自动生成合计行和可加计扣除总额
- 表头加粗、金额千分位、列宽自适应

【代码要求】
- 完整可运行,含Sub过程定义
- 每段逻辑添加中文注释,说明政策依据
- 异常处理:Sheet不存在时弹出提示不崩溃
- Application.ScreenUpdating = False提高速度
- 按钮Caption设为"一键生成辅助账"

请输出完整VBA代码。

实测效果

这条指令跑出来的VBA代码,大约有200多行。我把它复制到Excel的VBA编辑器里(Alt+F11 → 插入模块 → 粘贴),然后在工作表上画了一个按钮,关联到这个宏。点击按钮,大概3-5秒,一张完整的研发辅助账就出现在新建的Sheet里了。

⚠️ 经验和踩坑

• DeepSeek生成的VBA代码第一版通常能跑通,但表头名称、列的位置必须和代码里一致。
• 如果数据量比较大,在代码开头加一句 Application.Calculation = xlCalculationManual,跑完再改回自动计算,速度会更快。

03 // 代码跑通之后,下一步是"定制"

上面那版代码是通用模板。跑通之后,你会发现有些地方不符合自家公司的实际情况。这时候不需要自己改代码,继续让DeepSeek改就行。

定制1:修改项目名称和数量

📝 Prompt

请修改刚才的VBA代码:
将项目从原来的"A项目、B项目、C项目"改为4个项目:
"智能座舱项目"、"电池管理系统项目"、"电驱总成项目"、"前瞻技术预研"
代码中所有涉及项目名称的地方都要更新,包括表头、数组定义、循环范围。

定制2:增加"委外研发费用"类别

📝 Prompt

请在刚才的VBA代码中增加第五类费用的处理:
新建一个Sheet"委外研发",读取其中的委外合同数据
(列:合同编号、受托方、合同金额、对应项目),
按项目汇总后在"研发辅助账"中新增一行"委外研发费用"。
委外研发费用按发生额的80%计入可加计扣除基数(政策依据:财税〔2015〕119号)。

定制3:生成PDF版备查文件

📝 Prompt

请在VBA代码末尾增加一段逻辑:
辅助账生成完毕后,自动将"研发辅助账"Sheet导出为PDF,
保存路径为当前工作簿所在文件夹,文件名为"研发费用辅助账_当前日期.pdf",
导出后弹出提示框"辅助账PDF已生成,路径为:[文件路径]"。

这些定制需求,你直接用中文描述给DeepSeek,它就能改。不用自己查VBA语法手册,不用在搜索引擎里搜"VBA怎么遍历文件夹"。这是AI写VBA最大的价值——不是替代程序员,是让财务人员能绕过程序员这一步。

04 // 使用这套VBA方案的三个前提

前提一:原始数据必须规范

所有占比都用小数(如0.7),所有金额都用纯数字(不加"元"和千分位)。花10分钟统一格式,能省掉后续所有调试时间。

前提二:工时数据必须有据可查

VBA能帮你算分摊,但不能替你编数据。工时占比必须来源于真实的工时记录或设备日志。税务局查加计扣除,第一件事就是翻工时记录。

前提三:代码运行后必须人工复核

AI写的VBA代码,虽然大概率能跑通,但不能保证100%正确。第一次运行之后,一定要拿一个手工算过的案例对照验证一遍。

05 // 时间对比

环节
手工公式时代
VBA一键时代
整理原始数据
1.5小时
1.5小时
粘贴数据到模板
0
5分钟
运行VBA生成辅助账
0
10秒
人工复核+微调
2小时
30分钟
合计
约3.5小时
约2小时

时间压缩了40%。但更重要的是:以前做完之后整个人是疲惫的,因为所有脑力都耗在核对公式上了;现在VBA帮我把体力活干了,剩下的精力可以用来做更有价值的分析。

06 // 适合谁,不适合谁

这套VBA方案特别适合:

- 每季度固定要做研发辅助账,且项目数量、人员结构相对稳定的财务

- 有一定Excel基础、能操作VBA编辑器(复制粘贴代码+关联按钮即可)但不会自己写代码的

- 希望把重复性工作固化下来、提高团队标准化水平的财务负责人

不太适合:

- 研发费用结构极其复杂、需要大量人工判断的

- 公司IT政策严格、不允许运行宏的工作环境

- 原始数据极度不规范、每次格式都不一样的情况(先解决数据治理问题,再谈自动化)

📦 资源包

文章展示了VBA代码的生成指令和三个定制方向。我把研发费用辅助账的完整VBA代码(含人员人工、折旧、直接投入、委外研发四类费用处理+10%上限自动检查+PDF导出)和配套Excel模板打包好了。

另外附赠5个财税高频场景的VBA生成指令模板:银行对账自动勾销、应收账款账龄自动分析、固定资产折旧汇总表、增值税申报表数据汇总、多Sheet合并汇总。每个指令都标明了需要的原始数据格式和输出效果。

私信回复「VBA辅助账」,直接发给你。代码复制到VBA编辑器就能跑,模板改个表头就能用。用的时候如果代码报错,把报错信息贴到评论区,我帮你调。