从0学Excel VBA编程 第2篇:VBA编辑器——你的代码工作台
每天10分钟,认识写代码的地方,迈出编程第一步。
学习目标
认识 VBA 编辑器的三大窗口:工程窗口、代码窗口、属性窗口 学会新建模块、在模块中写代码、删除模块 学会正确保存含有宏的工作簿(.xlsm 格式)
知识点精讲
打开 VBA 编辑器
上一篇文章我们学会了用它打开宏列表。但 VBA 编辑器能做的事情远不止这些——它是你未来写代码、调试代码、管理模块的"总指挥部"。
打开方式(任选一种):
快捷键: Alt + F11(最常用,一定要记住)菜单:开发工具 → Visual Basic 再次按 Alt + F11可以切回 Excel 界面
VBA 编辑器的三大窗口
打开编辑器后,你会看到三个主要区域。如果某个窗口没显示,在菜单栏点击 "视图" 就能找到:
1. 工程资源管理器(左上角)
这是一个树形结构,展示了你当前打开的所有 Excel 工作簿。
VBAProject(工作簿1) ├── Microsoft Excel 对象 │ ├── Sheet1 (Sheet1) │ ├── Sheet2 (Sheet2) │ └── ThisWorkbook └── 模块 └── Module1每个工作簿都是一个"工程",下面装着:
工作表对象(Sheet1、Sheet2……):每个工作表对应一个对象,双击可以给这个工作表写专属代码 ThisWorkbook:代表整个工作簿,双击可以写工作簿级别的事件代码(后续会讲) 模块(Module):你写代码的主要地方,所有自定义的宏都放在这里面
2. 代码窗口(右侧大片区域)
这就是你将来每天面对的地方——写代码、改代码、删代码全在这里。
代码窗口是"按需显示"的:双击工程窗口里的任意对象(Sheet1、ThisWorkbook、Module1),右侧才会出现对应的代码窗口。
3. 属性窗口(左下角)
显示你当前选中的对象的属性,比如名称、是否隐藏等。对于初学者,可以先不用管这个窗口,知道它在那儿就行。
模块是什么?
模块(Module)就是一个装代码的容器。你写的每一个宏,都需要放在某个模块里。
类比一下:模块就像文件夹,代码就像文件。你不可能把文件直接扔在桌面上,得先建个文件夹放进去。
一个工作簿可以有多个模块,你可以按功能分类:
Module1 放数据处理的宏 Module2 放格式设置的宏 Module3 放报表生成的宏
保存含宏的工作簿
这是一个非常容易踩坑的地方,很多初学者在这栽跟头。
Excel 的默认保存格式是 .xlsx,但这种格式不支持保存宏。如果你写了代码却保存为 .xlsx,下次打开代码全没了。
正确做法:
点击 文件 → 另存为 在"保存类型"下拉框中选择 "Excel 启用宏的工作簿 (*.xlsm)" 保存
记住了:有宏 → 存 .xlsm;无宏 → 存 .xlsx。以后凡是写代码的工作簿,一律用 .xlsm。
实战案例
案例1:新手入门——打开编辑器 & 创建第一个模块(简单)
功能说明:打开 VBA 编辑器,认识三大窗口,新建一个自己的模块。
操作步骤:
打开 Excel,新建一个空白工作簿 按 Alt + F11打开 VBA 编辑器观察界面: 左上角:工程资源管理器,显示 VBAProject(工作簿1) 左下角:属性窗口 右侧:灰色空白区域(还没有打开任何代码窗口) 点击菜单 "插入" → "模块" 观察变化: 工程窗口中出现了"模块"文件夹,下面多了一个"Module1" 右侧自动弹出一个空白代码窗口
检查效果:你已经创建了人生第一个模块!右侧的空白窗口就是未来写代码的地方。
案例2:第一行代码——显示当前时间的宏(中等)
功能说明:在刚才新建的 Module1 中编写一个宏,运行后在活动单元格显示当前的日期和时间。
操作步骤:
在右侧 Module1 的空白代码窗口中,输入以下代码:
Sub 显示当前时间() ' 在活动单元格中写入当前日期和时间 ActiveCell.Value = NowEnd Sub确认你输入的代码完全正确: Sub 显示当前时间()—— 宏的开头,"显示当前时间"是宏的名字' 在活动单元格中写入当前日期和时间—— 这是注释,前面加一个英文单引号',VBA 不会执行它ActiveCell.Value = Now—— 把当前日期时间(Now)写入当前选中的单元格End Sub—— 宏的结尾回到 Excel 界面(按 Alt + F11切换)点击任意一个空白单元格(比如 A1) 按 Alt + F8打开宏列表选择"显示当前时间",点击"运行"
结果:A1 单元格出现了当前的日期和时间,格式类似 2026/8/5 6:55:00。
小技巧:如果只想要日期,把 Now 改成 Date;只想要时间,改成 Time。
案例3:实用小案例——一键清空所选区域并设置表头(实用)
功能说明:编写一个宏,一键执行三个操作:① 清空工作表中的数据 ② 重新设置表头(序号、姓名、部门)③ 设置表头格式(加粗、居中、填色)。这是办公中最常见的"重置模板"需求。
操作步骤:
在 VBA 编辑器中( Alt + F11),确认 Module1 还在在刚才代码的下方空一行,粘贴以下代码:
Sub 重置表格模板() ' 清空当前工作表的全部内容 Cells.Clear ' 设置表头 Range("A1").Value = "序号" Range("B1").Value = "姓名" Range("C1").Value = "部门" ' 设置表头格式:加粗 + 居中 + 蓝色背景 With Range("A1:C1") .Font.Bold = True .HorizontalAlignment = xlCenter .Interior.Color = RGB(68, 114, 196) .Font.Color = RGB(255, 255, 255) End With ' 调整列宽 Columns("A:C").ColumnWidth = 15 ' 提示完成 MsgBox "模板已重置,可以开始录入数据了!"End Sub回到 Excel,务必先保存:文件 → 另存为 → 选择 "Excel 启用宏的工作簿 (*.xlsm)",保存到桌面 在 Sheet1 中随便输入一些数据,然后按 Alt + F8运行"重置表格模板"
结果:表格中所有数据被清空,A1:C1 自动出现蓝色表头(序号、姓名、部门),弹窗提示"模板已重置"。
代码讲解(只讲本篇用到的新知识):
Cells.Clear— 清除当前工作表所有单元格的内容和格式。类比"撕掉整张白纸"With ... End With— 对同一个对象连续做多件事时,可以把它"提出来",避免重复写对象名。就像你跟一个人说"你去:① 关门 ② 关灯 ③ 锁窗",比"张三去关门。张三去关灯。张三去锁窗"简洁得多RGB(68, 114, 196)— 用红绿蓝三色数值来表示颜色,括号里三个数字分别对应 R(红)、G(绿)、B(蓝),取值范围 0~255
本篇小结
VBA 编辑器是写代码的地方, Alt + F11打开/切换,一定要记住模块是装代码的容器,所有宏必须放在模块里,通过"插入 → 模块"创建 写代码的四个基本步骤:打开编辑器 → 插入模块 → 写代码 → 保存为 .xlsmSub 宏名()和End Sub中间就是宏的代码内容单引号 '开头的是注释,VBA 不会执行,用来给自己做笔记
今天的三个新概念:
Now= 当前日期 + 时间Cells.Clear= 清空所有单元格With...End With= 批量操作同一个对象
下一篇内容预告
第3篇:变量和基本数据类型——让代码有"记忆"
什么是变量?为什么要用变量? 四种最常用的数据类型:整数、小数、文字、真假 学会用变量来存储和传递数据 下一篇开始,我们将真正理解代码是如何"记住东西"的!
小贴士:Alt + F11 是你在 VBA 世界里最频繁使用的快捷键,就像开车要记住刹车和油门一样。现在练习打开 → 关闭 → 再打开,做 3 遍。
夜雨聆风