今日学习目标

  • 了解VBA是什么
  • 掌握VBE编辑器的使用方法
  • 学会录制和运行宏
  • 编写第一个VBA程序

知识点

1. VBA是什么

VBA (Visual Basic for Applications) 是微软内置在Office中的宏语言,用于自动化Excel、Word等软件里的重复操作。凡是手动做过两遍以上的事——填表、汇总、复制粘贴、调格式,几乎都能交给VBA一键完成。手写VBA比录制宏更灵活,能加判断和循环。

2. 打开VBE编辑器

  • 快捷键:Alt + F11
  • 或:开发工具 → Visual Basic

左侧"工程资源管理器"列出工作表和模块,双击模块即打开代码窗口写代码。菜单里没有"开发工具"选项卡时,去 文件 → 选项 → 自定义功能区 勾选"开发工具"。

3. 插入模块与录制宏

写代码前先在工程资源管理器右键 → 插入 → 模块。录制宏的位置:开发工具 → 录制宏;宏名命名规则:不能包含空格和特殊字符,不能用数字开头,可以用中文。不会写的语句先录一遍宏,再研究生成的代码,是最实用的自学方法。

4. 运行宏的方法

  1. VBE编辑器中把光标放进宏内,按 F5
  2. 快捷键 Alt + F8 选择宏运行
  3. 绑定到按钮,单击触发

注意:含宏的工作簿必须另存为.xlsm格式,否则代码会丢失。

今日代码

vba
Sub HelloWorld() MsgBox "Hello, VBA!" End Sub

MsgBox 弹出对话框显示引号里的文字;bas文件中的写法 MsgBox "Hello, VBA!", vbInformation, "欢迎" 还能指定图标和标题。

实战场景

背景:行政专员每天要在签到表A1手动输入标题和当天日期,一个月重复二十多遍。用宏把它变成一键操作:

vba
Sub 生成签到表抬头() Range("A1").Value = "XX公司签到表" Range("A2").Value = "日期: " & Date MsgBox "抬头已生成", vbInformation, "完成" End Sub

运行后A1是标题,A2是"日期: 2026/10/11"这样的当天日期——Date 自动取系统日期,每天运行自动更新。再通过 开发工具 → 插入 → 按钮 把宏绑定到按钮。这就是VBA的价值:把每天重复的动作固化成一键。

练习题

  1. 练习录制一个宏,设置A1单元格为"Hello"
  2. 尝试修改录制的宏,添加更多操作
  3. 创建一个宏,使用MsgBox显示欢迎信息

参考解答

  1. 开发工具 → 录制宏 → 开始操作 → 停止录制,修改录制的宏可在VBE中编辑,生成的代码形如 Range("A1").Select、ActiveCell.FormulaR1C1 = "Hello"。
  2. 在VBE中给录制的宏补语句,例如加 Range("A1").Font.Bold = True 让A1加粗。
  3. 直接编写新宏,调用MsgBox函数显示信息,例如 MsgBox "欢迎使用本系统!"。

延伸练习

  1. 修改HelloWorld,用 Now 显示当前日期和时间。
  2. 用 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)整理制作