Excel 宏与VBA快捷键 #

宏和VBA是 Excel 自动化的核心,掌握相关快捷键可以大幅提升重复性工作的效率。

宏基础 #

什么是宏 #

宏是一系列 Excel 操作的录制,可以通过快捷键一键执行,实现自动化操作。

text
宏的工作流程:
┌─────────────────────────────────────────┐
│  1. 开始录制                            │
│      ↓                                  │
│  2. 执行操作(被记录)                  │
│      ↓                                  │
│  3. 停止录制                            │
│      ↓                                  │
│  4. 运行宏(重复执行)                  │
└─────────────────────────────────────────┘

宏对话框 #

快捷键 功能 说明
Alt+F8 打开宏对话框 查看、运行、编辑宏
Alt+T, M, M 打开宏对话框 传统快捷键

宏对话框 #

text
┌─────────────────────────────────────────┐
│              宏                          │
├─────────────────────────────────────────┤
│  宏名(M):                               │
│  ┌─────────────────────────────────┐   │
│  │ 格式化报表                      │   │
│  │ 清理数据                        │   │
│  │ 创建图表                        │   │
│  │ 发送邮件                        │   │
│  └─────────────────────────────────┘   │
│                                         │
│  位置(A):                               │
│  ┌─────────────────────────────────┐   │
│  │ 所有打开的工作簿        ▼       │   │
│  └─────────────────────────────────┘   │
│                                         │
│  宏说明(D):                             │
│  格式化当前工作表                       │
│                                         │
│  [运行(R)]  [单步执行(S)]               │
│  [编辑(E)]  [创建(C)]                   │
│  [删除(D)]  [选项(O)...]                │
└─────────────────────────────────────────┘

录制宏 #

录制操作 #

快捷键 功能 说明
Alt+T, M, R 录制宏 开始录制新宏
Alt+W, M, R 录制宏 通过视图菜单
Alt+R, M, R 停止录制 停止当前录制

录制宏对话框 #

text
┌─────────────────────────────────────────┐
│          录制新宏                        │
├─────────────────────────────────────────┤
│  宏名(M):                               │
│  ┌─────────────────────────────────┐   │
│  │ 格式化报表                      │   │
│  └─────────────────────────────────┘   │
│                                         │
│  快捷键(K):                             │
│  Ctrl+ [  ]                             │
│                                         │
│  保存在(I):                             │
│  ┌─────────────────────────────────┐   │
│  │ 个人宏工作簿            ▼       │   │
│  └─────────────────────────────────┘   │
│                                         │
│  说明(D):                               │
│  ┌─────────────────────────────────┐   │
│  │ 格式化当前工作表                │   │
│  └─────────────────────────────────┘   │
│                                         │
│  [确定]        [取消]                   │
└─────────────────────────────────────────┘

录制宏步骤 #

text
1. 按 Alt+T, M, R 开始录制
2. 输入宏名和快捷键
3. 执行要录制的操作
4. 按 Alt+R, M, R 停止录制
5. 按 Alt+F8 测试运行

录制技巧 #

text
录制前准备:
- 清晰规划要录制的操作
- 确保数据位置正确
- 关闭不必要的对话框

录制时注意:
- 操作要精确简洁
- 避免不必要的点击
- 使用相对引用(如需要)

录制后:
- 测试宏是否正常工作
- 根据需要编辑代码
- 分配快捷键

VBA编辑器 #

打开VBA编辑器 #

快捷键 功能 说明
Alt+F11 打开VBA编辑器 切换编辑器窗口
Alt+F8 → 编辑 编辑宏代码 在宏对话框中

VBA编辑器界面 #

text
┌─────────────────────────────────────────┐
│  VBA 编辑器                              │
├─────────────────────────────────────────┤
│  [文件] [编辑] [视图] [插入] ...        │
├─────────────────────────────────────────┤
│  工程资源管理器 │ 代码窗口              │
│  ┌─────────────┬────────────────────┐  │
│  │ VBAProject  │ Sub 格式化报表()   │  │
│  │ ├ Sheet1    │     ' 格式化代码   │  │
│  │ ├ Sheet2    │     Range("A1").   │  │
│  │ ├ Sheet3    │     End Sub        │  │
│  │ └ ThisWork │                      │  │
│  ├─────────────┤                      │  │
│  │ 属性窗口    │                      │  │
│  │ Name: Sheet1│                      │  │
│  └─────────────┴────────────────────┘  │
├─────────────────────────────────────────┤
│  立即窗口                               │
│  ?Range("A1").Value                     │
└─────────────────────────────────────────┘

VBA编辑器快捷键 #

文件操作 #

快捷键 功能
Ctrl+S 保存
Ctrl+P 打印
Alt+Q 关闭编辑器

编辑操作 #

快捷键 功能
Ctrl+C 复制
Ctrl+X 剪切
Ctrl+V 粘贴
Ctrl+Z 撤销
Ctrl+Y 删除整行
Ctrl+D 复制当前行
Ctrl+F 查找
Ctrl+H 替换
Ctrl+Shift+F 全局查找
Ctrl+Shift+H 全局替换

代码导航 #

快捷键 功能
F7 查看代码
Shift+F7 查看对象
Ctrl+G 显示立即窗口
Ctrl+R 显示工程资源管理器
F4 显示属性窗口
Ctrl+Shift+F2 返回上一位置
Ctrl+Home 跳到模块开头
Ctrl+End 跳到模块结尾

代码格式化 #

快捷键 功能
Tab 增加缩进
Shift+Tab 减少缩进
Ctrl+J 自动完成
Ctrl+Shift+J 参数信息

调试快捷键 #

运行控制 #

快捷键 功能 说明
F5 运行 运行代码
F8 单步执行 逐语句执行
Shift+F8 逐过程 跳过过程
Ctrl+Shift+F8 跳出 跳出当前过程
Ctrl+F8 运行到光标 运行到光标位置
Ctrl+Break 中断 停止运行

断点操作 #

快捷键 功能 说明
F9 切换断点 设置/取消断点
Ctrl+Shift+F9 清除所有断点 删除所有断点

调试窗口 #

快捷键 功能
Ctrl+G 立即窗口
Ctrl+L 调用堆栈
Ctrl+W 监视窗口
Shift+F9 快速监视

调试界面 #

text
调试模式:
┌─────────────────────────────────────────┐
│  Sub 格式化报表()                        │
│      Dim i As Integer                   │
│      For i = 1 To 10                    │
│  →       Cells(i, 1).Value = i  ← 断点 │
│          Cells(i, 2).Formula = "=A" & i │
│      Next i                             │
│  End Sub                                │
├─────────────────────────────────────────┤
│  立即窗口:                              │
│  ?i                                     │
│   1                                      │
│  ?Cells(1,1).Value                      │
│   1                                      │
├─────────────────────────────────────────┤
│  监视窗口:                              │
│  表达式          值      类型           │
│  i               1       Integer        │
│  Cells(i,1)      "1"     Range          │
└─────────────────────────────────────────┘

代码插入 #

插入模块 #

快捷键 功能
Alt+I, M 插入模块
Alt+I, C 插入类模块
Alt+I, U 插入用户窗体

过程模板 #

text
Sub 过程名()
    ' 代码
End Sub

Function 函数名() As 类型
    ' 代码
    函数名 = 返回值
End Function

Private Sub 过程名()
    ' 私有过程
End Sub

常用VBA代码模板 #

格式化报表 #

vba
Sub FormatReport()
    With Range("A1:Z100")
        .Font.Name = "微软雅黑"
        .Font.Size = 11
        .Borders.LineStyle = xlContinuous
        .Interior.Color = RGB(240, 240, 240)
    End With
    
    With Range("A1:Z1")
        .Font.Bold = True
        .Interior.Color = RGB(0, 112, 192)
        .Font.Color = RGB(255, 255, 255)
    End With
    
    Columns.AutoFit
End Sub

清理数据 #

vba
Sub CleanData()
    Dim ws As Worksheet
    Set ws = ActiveSheet
    
    ws.Cells.Replace What:=" ", Replacement:=""
    ws.Cells.Replace What:=Chr(160), Replacement:=""
    
    On Error Resume Next
    ws.Cells.SpecialCells(xlCellTypeBlanks).Delete
    On Error GoTo 0
End Sub

创建数据透视表 #

vba
Sub CreatePivotTable()
    Dim ws As Worksheet
    Dim pvtCache As PivotCache
    Dim pvtTable As PivotTable
    
    Set ws = ActiveSheet
    Set pvtCache = ThisWorkbook.PivotCaches.Create( _
        SourceType:=xlDatabase, _
        SourceData:=ws.Range("A1").CurrentRegion)
    
    Set pvtTable = pvtCache.CreatePivotTable( _
        TableDestination:=ws.Range("E1"))
End Sub

实用技巧 #

快速运行宏 #

text
方法 1: 快捷键
- 为宏分配 Ctrl+字母 快捷键

方法 2: 快速访问工具栏
- 将宏添加到 QAT

方法 3: 按钮控件
- 插入按钮并指定宏

调试技巧 #

text
1. 使用断点 (F9)
   在可疑代码行设置断点

2. 使用立即窗口 (Ctrl+G)
   测试表达式和变量值

3. 使用监视窗口
   监视变量变化

4. 单步执行 (F8)
   逐行检查代码执行

错误处理 #

vba
Sub SafeMacro()
    On Error GoTo ErrorHandler
    
    ' 正常代码
    
    Exit Sub
    
ErrorHandler:
    MsgBox "错误 " & Err.Number & ": " & Err.Description
End Sub

练习建议 #

练习 1: 录制宏 #

  1. 录制一个格式化宏
  2. 分配快捷键
  3. 测试运行

练习 2: 编辑宏 #

  1. Alt+F11 打开编辑器
  2. 修改录制的代码
  3. 添加注释和错误处理

练习 3: 调试宏 #

  1. 设置断点
  2. 使用单步执行
  3. 使用立即窗口检查变量

下一步 #

掌握了宏与VBA快捷键后,继续学习 实战技巧组合,将所学技能应用到实际工作中!

最后更新:2026-04-11