VBA 编程入门:环境搭建与第一个宏

VBA(Visual Basic for Applications)是 Office 内置的脚本语言,能把你日常重复的 Excel/Word 操作自动化:批量整理表格、生成报表、批量改名。本文从零开始,带你搭好环境、写出第一个能跑的宏。

1. 开启开发工具选项卡

默认 Excel 隐藏了「开发工具」选项卡。开启:文件 → 选项 → 自定义功能区 → 右侧勾选「开发工具」→ 确定。现在顶部能看到「开发工具」,里面有「Visual Basic」「宏」「录制宏」等入口。

2. 打开 VBA 编辑器(VBE)

Alt + F11 打开 VBE(Visual Basic Editor)。左侧是「工程资源管理器」,显示当前工作簿的所有工作表和模块;右侧是代码窗口。看不到工程资源管理器就按 Ctrl + R 调出来。

3. 插入模块,写第一个宏

在工程资源管理器里右键你的工作簿 → 插入 → 模块。右侧出现空白代码窗口,输入:

Sub 显示欢迎()
    MsgBox "你好,VBA!"
End Sub

回 Excel,按 Alt + F8 打开宏列表,选「显示欢迎」→ 运行,弹出「你好,VBA!」对话框——第一个宏跑起来了。

4. Sub 与 Function 的区别

  • Sub:执行一个动作,不返回值。适合「弹窗、改格式、批量操作」。
  • Function:计算并返回一个值,能在单元格当公式用:
Function 计算折扣(原价 As Double) As Double
    计算折扣 = 原价 * 0.8
End Function

在单元格里输入 =计算折扣(100) 就返回 80。

5. 读写单元格

宏最有用的是自动操作单元格。用 RangeCells:

Sub 填充数据()
    Range("A1").Value = "产品"
    Range("B1").Value = "单价"
    Cells(2, 1).Value = "笔记本"
    Cells(2, 2).Value = 5999
End Sub

运行后 A1:B2 就被填好了。

6. 弹窗与用户输入

InputBox 让用户输入,MsgBox 输出。& 是字符串拼接,vbCrLf 是换行,_ 是续行符:

Sub 查询信息()
    MsgBox "操作员:" & Application.UserName & vbCrLf & _
           "Excel 版本:" & Application.Version
End Sub

常见问题

  • 宏被禁用无法运行:存成 .xlsx 不能存宏,必须存 .xlsm。打开时点黄色警告条「启用内容」。
  • 看不到工程资源管理器:VBE 里按 Ctrl + R
  • 代码有红线报错:漏了 End Sub、括号不配对、字符串引号没闭合。

方法对比:VBA 宏 vs Python

维度 VBA 宏 Python 脚本
运行环境 Office 内置 要装 Python + 库
操作 Excel 原生最顺 需 openpyxl/xlwings
数据分析 pandas 强

轻量办公自动化用 VBA 最省事;数据量大或要复用再迁移 Python。

工具承接

写好的 VBA 想转 Python 做数据分析?用在线 VBA 转 Python 工具获得初版。代码格式乱?VBA 格式化工具一键规范缩进大小写。