今日学习目标
- 了解VBA是什么
- 掌握VBE编辑器的使用方法
- 学会录制和运行宏
- 编写第一个VBA程序
知识点
1. VBA是什么
VBA (Visual Basic for Applications) 是微软内置在Office中的宏语言,用于自动化Excel、Word等软件里的重复操作。凡是手动做过两遍以上的事——填表、汇总、复制粘贴、调格式,几乎都能交给VBA一键完成。手写VBA比录制宏更灵活,能加判断和循环。
2. 打开VBE编辑器
- 快捷键:
Alt + F11 - 或:开发工具 → Visual Basic
左侧"工程资源管理器"列出工作表和模块,双击模块即打开代码窗口写代码。菜单里没有"开发工具"选项卡时,去 文件 → 选项 → 自定义功能区 勾选"开发工具"。
3. 插入模块与录制宏
写代码前先在工程资源管理器右键 → 插入 → 模块。录制宏的位置:开发工具 → 录制宏;宏名命名规则:不能包含空格和特殊字符,不能用数字开头,可以用中文。不会写的语句先录一遍宏,再研究生成的代码,是最实用的自学方法。
4. 运行宏的方法
- VBE编辑器中把光标放进宏内,按
F5 - 快捷键
Alt + F8选择宏运行 - 绑定到按钮,单击触发
注意:含宏的工作簿必须另存为.xlsm格式,否则代码会丢失。
今日代码
vbaSub HelloWorld()
MsgBox "Hello, VBA!"
End SubMsgBox 弹出对话框显示引号里的文字;bas文件中的写法 MsgBox "Hello, VBA!", vbInformation, "欢迎" 还能指定图标和标题。
实战场景
背景:行政专员每天要在签到表A1手动输入标题和当天日期,一个月重复二十多遍。用宏把它变成一键操作:
vbaSub 生成签到表抬头()
Range("A1").Value = "XX公司签到表"
Range("A2").Value = "日期: " & Date
MsgBox "抬头已生成", vbInformation, "完成"
End Sub运行后A1是标题,A2是"日期: 2026/10/11"这样的当天日期——Date 自动取系统日期,每天运行自动更新。再通过 开发工具 → 插入 → 按钮 把宏绑定到按钮。这就是VBA的价值:把每天重复的动作固化成一键。
练习题
- 练习录制一个宏,设置A1单元格为"Hello"
- 尝试修改录制的宏,添加更多操作
- 创建一个宏,使用MsgBox显示欢迎信息
参考解答
- 开发工具 → 录制宏 → 开始操作 → 停止录制,修改录制的宏可在VBE中编辑,生成的代码形如
Range("A1").Select、ActiveCell.FormulaR1C1 = "Hello"。 - 在VBE中给录制的宏补语句,例如加
Range("A1").Font.Bold = True让A1加粗。 - 直接编写新宏,调用MsgBox函数显示信息,例如
MsgBox "欢迎使用本系统!"。
延伸练习
- 修改HelloWorld,用
Now显示当前日期和时间。 - 用
InputBox("请输入你的名字")接收输入,再在MsgBox里向对方问好。
常见错误与排查
| 报错/现象 | 原因 | 解决方法 |
|---|---|---|
Compile error: Expected: expression |
字符串漏了引号 | 给文本补上英文双引号 |
| 提示"无法在未启用宏的工作簿中保存" | 存成了.xlsx | 另存为.xlsm格式 |
Sub or Function not defined |
宏名拼错或调用了不存在的宏 | 核对名称,Alt+F8查看宏列表 |
| 打开文件时提示"宏已被禁用" | Excel安全机制 | 点"启用内容" |
学习总结
Day01回答了三个入门问题:VBA是什么、代码写在哪(VBE的模块里)、怎么运行(F5、Alt+F8、按钮)。记住两件事:工作簿存成.xlsm,报错先读英文提示。
由在线工具箱(www.vba.net)整理制作