之前文章讨论了AI加持对于VBA的使用,最近用的比较多,就写下了这篇文章,进一步讨论使用时的注意事项。
AI对个人工具使用的影响
影响一:能力门槛的"断崖式降低"
过去的三重障碍:
- 语法记忆门槛:
Worksheets还是Worksheet?End(xlUp)还是End(xlDown)?
现在的AI翻译官模式:
实战演示:
向AI描述需求:
"用Excel VBA实现:遍历当前文件夹下所有Excel文件,将每个文件的Sheet1中A1:D100数据复制到主工作簿的新工作表,工作表名使用原文件名(不含扩展名),最后保存主工作簿。"
AI生成代码框架:
Sub 合并多文件数据() Dim folderPath As String, fileName As String Dim wbSource As Workbook, wbMain As Workbook Dim wsNew As Worksheet Set wbMain = ThisWorkbook folderPath = ThisWorkbook.Path & "\" fileName = Dir(folderPath & "*.xlsx") Do While fileName <> "" If fileName <> wbMain.Name Then Set wbSource = Workbooks.Open(folderPath & fileName) Set wsNew = wbMain.Sheets.Add wsNew.Name = Left(fileName, InStr(fileName, ".") - 1) wbSource.Sheets(1).Range("A1:D100").Copy wsNew.Range("A1") wbSource.Close SaveChanges:=False End If fileName = Dir() Loop wbMain.Save MsgBox "合并完成!"End Sub
角色跃迁: 从"手写代码" → "逻辑审视"
影响二:工具使用的"认知外包"风险
AI降低了入门门槛,但也制造了能力幻觉——你可能在不理解的情况下使用强大工具。
风险案例:盲目信任AI代码
AI生成的代码(表面正确):
Sub 删除空行() Dim rng As Range Set rng = Range("A1:A1000") rng.SpecialCells(xlCellTypeBlanks).EntireRow.DeleteEnd Sub
正确的使用姿势:
学会设置防火墙
先进性小规模测试,发现问题,使用AI继续优化,问题扫清在进行正式处理。
影响三:从"工具使用者"到"工具整合人"
AI放大了选择权,但也要求你具备技术视野的广度。
同一问题的多工具决策矩阵:
| | |
|---|
| Excel公式 | | |
| Power Query | | |
| VBA | | |
| Python | | |
| 现成插件 | | |
核心能力转移: 从"精通单一工具"到"精准匹配工具与场景"
影响四:学习模式的"碎片化"与"深度化"悖论
碎片化(即用即学):
深度化(底层理解):
当AI处理了80%的基础工作,剩余20%的高阶问题需要更深理解:
- 性能瓶颈:为什么这段代码处理10万行数据需要5分钟?(数组 vs 单元格操作)
- 安全防御:如何防止代码被逆向工程?(VBA工程保护、数字签名)
- 跨版本兼容:为何在Excel 2016上崩溃?(对象模型的版本差异)
AI辅助工具使用的六大铁律
铁律一:精准描述是核心竞争力
❌ 差的描述(信息熵极低):
"帮我写个VBA代码处理Excel数据"
✅ 好的描述(情境-任务-约束-输出框架):
情境: 财务专员,每月处理30个分公司费用报销表任务: VBA自动合并文件数据,按费用类型汇总并生成透视表约束:
- 源路径:
\\Server\Reports\2024\,文件名格式分公司名_费用表_年月.xlsx - 数据结构:3个工作表,目标数据在"明细"表A2:H列,标题在第1行
原理: AI的产出质量与输入的信息密度成正比。
铁律二:建立"理解-测试-验证-迭代"工作流
绝对禁止: 直接在生产环境运行AI生成代码。
┌─────────────────┐│ 1. 理解阶段 ││ 要求AI逐行解释 ││ 确认循环/条件逻辑 │└────────┬────────┘ ▼┌─────────────────┐│ 2. 测试阶段 ││ 副本数据运行 ││ 准备回滚方案 │└────────┬────────┘ ▼┌─────────────────┐│ 3. 验证阶段 ││ 抽样核对结果 ││ 测试边界情况 ││ (空数据/超大文件/特殊字符)│└────────┬────────┘ ▼┌─────────────────┐│ 4. 迭代阶段 ││ 反馈问题给AI ││ "中文文件名报错,请修复" │└─────────────────┘
铁律三:识别AI的"自信错误"
AI在编程领域特别容易犯看起来对,实则错的幻觉。
VBA常见AI陷阱:
| | |
|---|
| 对象假设 | | |
| 路径硬编码 | "C:\Users\Name\Desktop\file.xlsx" | |
| 版本幻觉 | | |
| 逻辑漏洞 | | |
| 性能陷阱 | | |
防御策略: 在提示词中强制要求防御性编程:
"请在代码中加入:对象存在性检查、文件存在性验证、边界情况处理、关键步骤日志记录。"
铁律四:敏感数据与代码安全红线(打工人一定要小心)
高风险场景:
安全操作指南:
| |
|---|
| 数据脱敏 | |
| 代码审查 | |
| 环境隔离 | |
| 权限控制 | VBA工程设置密码保护(工具→VBAProject属性→保护) |
| 审计追踪 | 代码中加入操作日志,记录Who/When/What |
铁律五:保持"底层理解"防止能力退化
危险信号自查:
- [ ] 离开AI就写不出完整的
For Each循环
能力保鲜训练:
每周"无AI日":
建立个人代码库:
不可外包的核心概念:
- VBA对象模型层级:
Application → Workbook → Worksheet → Range - 错误处理三种模式:
On Error GoTo / Resume Next / GoTo 0
铁律六:界定人机协作的绝对边界,对于AI在合适的场景使用
| AI专属区(放心交给AI) | 人类禁区(必须亲自掌控) |
|---|
| |
| |
| |
| |
| |
核心原则: AI是副驾驶,你是机长。飞机出事时,乘客找的是机长,不是副驾驶。
举个例子:完整的AI辅助VBA开发流程
项目: 智能报表生成器(多数据源→自动分析→可视化报告)
Step 1:架构设计(顶层设计)
提示词:
"设计Excel VBA工具架构,包含:
输出:模块划分、主要过程、调用关系,使用中文注释。"
AI输出: 架构图 + 模块框架代码
Step 2:模块细化(逐个击破)
提示词:
"详细编写'数据导入模块':
- 查询:
SELECT * FROM Sales WHERE Date BETWEEN @StartDate AND @EndDate
AI输出: 详细连接代码
Step 3:代码审核(关键防线)
审核清单:
- [ ] 日期格式是否统一?(避免
2024/1/1 vs 2024-01-01混用)
发现问题:
"代码中未关闭Recordset对象,请添加清理逻辑。"
Step 4:集成优化(用户体验)
提示词:
"整合三模块,添加主过程'生成报表':
- 完成后弹出保存对话框,默认名
报表_年月日.xlsx
Step 5:安全加固(生产就绪)
| |
|---|
| 每个过程包含On Error GoTo ErrorHandler |
| |
| |
| |
以后打工人的可能形态:从VBA到自动化生态
掌握Excel VBA + AI协作后,你的工具链自然延伸:
Excel VBA(基础自动化) ↓Power Query + VBA(ETL能力升级) ↓Python(AI辅助编写,大数据/机器学习) ↓Power Automate / 影刀RPA(跨应用自动化) ↓低代码平台(Power Apps / 钉钉宜搭)(业务系统构建)
不变的核心能力:
理解业务需求 → 拆解技术步骤 → 借助AI实现 → 审核优化结果
谈谈想法:工具是杠杆,支点在你手中
AI并未削弱VBA的价值,反而让能够驾驭它的人更加稀缺。
当代码生成变得普及时,真正的区分度在于:
Excel仍是那个业务处理最流行的王者,VBA仍是那门有些晦涩、书写繁琐的语言,但AI赋予了你超级杠杆。
关键不在于杠杆本身,而在于你能否准确找到支点,用AI撬起来业务这座大山。