excelvba 全称 Visual Basic for Applications,是内嵌在 Excel 里面的宏编程语言,核心作用是把重复手动操作录制或者写成代码,实现批量处理数据 自动计算 自动格式设置 报表生成,代替人工反复点击菜单,提升表格处理效率,适合经常处理台账 汇总 清洗数据的办公人员。之所以很多办公人员选择学习 VBA,是 Excel 自带函数能处理的逻辑有限,遇到循环判断 跨工作表批量操作 复杂条件筛选的时候,普通公式会变得很长很难维护,VBA 可以写循环 分支 判断,还能调用 Excel 对象模型,直接控制单元格 工作表 工作簿,但是 VBA 属于内置脚本,不是独立软件,需要在 Excel 内置的 VBA 编辑器里面编写代码,默认 Excel 会隐藏开发工具选项卡,新手第一步经常卡在找不到 VBA 编辑器,同时新版 Excel 出于安全限制,带宏的文件必须保存成 xlsm 格式,如果保存成普通 xlsx,宏代码会直接丢失,这个是入门最常见坑点。
基础概念说明
| 术语 | 含义 |
|---|---|
| 宏 | 一段可以运行的 VBA 代码,用来执行自动化任务 |
| VBE | VBA 编辑器,编写代码的窗口 |
| 对象 | Excel 里面的元素,比如 Workbook 工作簿 Worksheet 工作表 Range 单元格区域 |
| 过程 Sub | 最基础的代码块,子程序,用来执行动作 |
| 模块 | 存放 Sub 代码的容器,插入模块之后写代码 |
第一步 调出开发工具与 VBE 编辑器
1 打开 Excel,点击文件,选项,自定义功能区
2 在右侧勾选开发工具,确定,顶部菜单栏就会出现开发工具选项卡
3 点击开发工具里面 Visual Basic,或者直接按快捷键 Alt 加 F11,打开 VBE 编辑器
4 在 VBE 窗口,右键当前工作簿,插入,模块,就可以新建代码模块
基础 Sub 代码结构
标准写法
Sub 第一个程序 ()
代码内容
End Sub
Sub 后面是过程名称,括号里面可以留空,中间写执行语句,End Sub 代表代码结束
入门示例 给 A1 单元格写入数值
Sub 写入测试 ()
Range ("A1").Value = 100
End Sub
入门示例 循环给 A 列填充数字
Sub 循环填充 ()
Dim i As Integer
For i = 1 To 10
Range ("A" & i).Value = i
Next i
End Sub
核心基础语法要点
1 变量声明 使用 Dim,常用类型 Integer 整数 Long 长整数 String 文本
2 循环语句 For Next,适合按次数批量处理
3 判断语句 If Then Else,做条件分支判断
4 工作表引用 Sheets ("Sheet1"),指定工作表操作
5 单元格引用 Range Cells,Range 可以写单元格地址,Cells 可以用行列数字定位
运行代码的几种方式
1 在 VBE 编辑器里面,光标放在 Sub 代码内部,按 F5 直接运行
2 回到 Excel 界面,开发工具,宏,选中对应的宏名称,点击执行
3 可以给宏绑定按钮,在工作表插入按钮,指定宏,点击按钮触发代码
4 可以设置自动运行,Workbook_Open,打开文件的时候自动执行代码
文件保存与安全设置
1 带 VBA 宏代码的文件,保存类型必须选择 xlsm 启用宏的工作簿
2 如果保存为 xlsx,代码不会保存,再次打开代码消失
3 Excel 默认宏安全级别较高,打开 xlsm 文件的时候,需要启用内容,否则代码无法运行
4 不建议随意运行来源不明的宏代码,存在安全风险
入门学习路线
第一阶段 熟悉 VBE 界面,学会插入模块,写简单单元格读写代码
第二阶段 学习变量 For 循环 If 判断,完成批量填充 批量清除格式
第三阶段 学习跨工作表操作,批量汇总多表数据
第四阶段 学习录制宏,录制操作之后查看生成代码,对照理解代码含义
整体来看 excelvba 基础入门核心就是打开 VBE,插入模块,掌握 Sub 结构 变量 循环 判断,理解 Excel 对象模型,记住宏文件必须保存 xlsm 格式,从简单单元格操作开始练习,录制宏是非常适合新手的辅助学习方式,可以快速看懂操作对应的代码写法。
【常见问题】
问题 1 excelvba 基础入门 为什么按 Alt 加 F11 没有反应
回答 1 excelvba 基础入门,Alt 加 F11 无反应,一般是 Excel 版本受限或者快捷键冲突,也可以通过开发工具选项卡点击 Visual Basic 打开 VBE 编辑器。
问题 2 excelvba 基础入门 保存之后代码不见了是什么原因
回答 2 excelvba 基础入门,代码丢失是因为文件保存成 xlsx 普通格式,xlsx 不支持宏,需要另存为 xlsm 启用宏的工作簿,代码才可以保留。
问题 3 excelvba 基础入门 录制宏有什么作用
回答 3 excelvba 基础入门,录制宏可以自动生成 VBA 代码,手动操作表格,软件把操作转换成代码,适合新手对照学习代码写法。
问题 4 excelvba 基础入门 Sub 是什么意思
回答 4 excelvba 基础入门,Sub 是子程序,是 VBA 最基础代码过程,用来存放自动化执行代码,以 Sub 开头,End Sub 结尾。
【免责申明】
本内容仅作为 excelvba 基础入门学习参考,宏代码存在误操作风险,正式使用前建议备份原始表格,不同 Excel 版本宏安全策略存在差异,因代码编写错误造成数据丢失,使用者自行承担相关风险。
