Excel 内置的“宏”命令(VBA 代码)
这是最接近“命令”概念的解释,Excel 内置的命令(如“保存”、“复制”)实际上是 VBA 宏,您可以通过录制宏来创建自己的命令,或者直接编写 VBA 代码来执行复杂操作。

录制宏(最简单的方式)
录制宏就像录制一个视频,Excel 会记录下您的所有操作,并将其转换为一串 VBA 代码。
示例:创建一个“一键设置标题格式”的宏
-
打开开发工具选项卡:
- 如果没有“开发工具”选项卡,请转到
文件->选项->自定义功能区,在右侧勾选“开发工具”。
- 如果没有“开发工具”选项卡,请转到
-
开始录制:
(图片来源网络,侵删)- 点击“开发工具”选项卡 ->
录制宏。 - 给宏命名,
FormatHeader。 - 可以设置快捷键(如
Ctrl+Shift+H)。 - 点击“确定”。
- 点击“开发工具”选项卡 ->
-
执行操作:
- 选中 A1 单元格。
- 将字体设置为“微软雅黑”,加粗,字号 16,并居中。
- 填充一个背景色,比如浅蓝色。
-
停止录制:
- 点击“开发工具”选项卡 ->
停止录制。
- 点击“开发工具”选项卡 ->
您就拥有了一个“命令”。 任何时候,只要您选中一个单元格,按下 Ctrl+Shift+H,就会自动应用您刚才录制的所有格式。
查看生成的“命令文本”(VBA 代码):

- 点击“开发工具” ->
Visual Basic(或按Alt+F11)。 - 在左侧的“工程”窗口中,双击
VBAProject (您的文件名)->模块。 - 您会看到类似下面的代码:
Sub FormatHeader()
' 宏 FormatHeader 由 MacroRecorder 录制,日期: 2025/10/27
With Selection.Font
.Name = "微软雅黑"
.FontStyle = "常规"
.Size = 16
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696 ' 这是浅蓝色的 RGB 值
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
使用“宏”功能来执行文本命令
您可以将一串文本作为“命令”,然后通过 VBA 来解析并执行它,这类似于在命令行窗口输入指令。
示例:通过输入文本命令来操作工作表
假设我们希望在工作表中输入 CREATE_SHEET Sales 就能自动创建一个名为 "Sales" 的新工作表。
- 打开 VBA 编辑器 (
Alt+F11)。 - 插入一个模块。
- 粘贴以下代码:
Sub ExecuteTextCommand()
' 假设命令在 A1 单元格
Dim commandText As String
Dim parts() As String
Dim action As String
Dim sheetName As String
commandText = Range("A1").Value
parts = Split(commandText, " ")
' 检查命令格式是否正确
If UBound(parts) < 1 Then
MsgBox "命令格式错误!请使用 'CREATE_SHEET [名称]' 的格式。", vbExclamation
Exit Sub
End If
action = parts(0)
sheetName = parts(1)
' 根据命令执行相应操作
Select Case action
Case "CREATE_SHEET"
On Error Resume Next ' 防止工作表已存在时报错
Worksheets.Add.Name = sheetName
If Err.Number <> 0 Then
MsgBox "工作表 '" & sheetName & "' 已存在或名称无效!", vbExclamation
Else
MsgBox "成功创建工作表 '" & sheetName & "'!", vbInformation
End If
On Error GoTo 0
Case ' 在这里可以添加更多命令,"DELETE_SHEET"
Case Else
MsgBox "未知的命令: " & action, vbExclamation
End Select
End Sub
如何使用:
- 在 Excel 的 A1 单元格中输入
CREATE_SHEET Finance。 - 运行
ExecuteTextCommand这个宏(可以通过Alt+F8选择运行)。 - 您会看到一个提示框,并且一个新的名为 "Finance" 的工作表被成功创建。
使用“Power Query”处理文本命令
Power Query (Get & Transform) 是一个强大的数据清洗和转换工具,它通过一系列“步骤”来处理数据,这些步骤在后台可以看作是“命令”。
示例:解析包含命令的文本列
假设您有一列数据,每行都是一个命令,格式为 命令:参数,ADD:100 或 SUBTRACT:50,您想根据这些命令生成一个结果列。
| 命令文本 |
|---|
| ADD:100 |
| SUBTRACT:50 |
| ADD:200 |
| MULTIPLY:2 |
| ADD:75 |
操作步骤:
-
加载数据到 Power Query:
- 选中数据区域 ->
数据选项卡 ->从表格/区域。 - 在弹出的窗口中,点击“转换”选项卡。
- 选中数据区域 ->
-
拆分列:
- 选中“命令文本”列 ->
拆分列->按分隔符。 - 选择
自定义,分隔符输入 。 - 勾选
将拆分拆分为行,然后点击“确定”,现在您有两列:命令文本.1(包含 ADD, SUBTRACT) 和命令文本.2(包含数字)。
- 选中“命令文本”列 ->
-
添加自定义列:
- 点击
添加列->自定义列。 - 新列名输入
结果。 - 在公式栏中输入以下
M语言公式(这是 Power Query 的“命令文本”):if [命令文本.1] = "ADD" then Number.From([命令文本.2]) else if [命令文本.1] = "SUBTRACT" then -Number.From([命令文本.2]) else if [命令文本.1] = "MULTIPLY" then Number.From([命令文本.2]) * 100 else 0
(这个公式的逻辑是:如果命令是 ADD,就取数字本身;如果是 SUBTRACT,就取其负数;如果是 MULTIPLY,就乘以100;否则为0,初始值设为100)
- 点击
-
聚合计算最终结果:
- 点击
转换->聚合->求和。 - 选择
结果列进行求和。 - 关闭并上载到 Excel。
- 点击
Power Query 会解析您的文本命令,并根据这些“命令”计算出总和。
使用“Office 脚本”(适用于 Excel for the web / Microsoft 365)
这是较新的自动化方式,使用 TypeScript 编写脚本,可以在网页版 Excel 和桌面版 Excel (Microsoft 365) 中运行。
示例:一个简单的脚本,将活动单元格的文本转为大写
function main(workbook: ExcelScript.Workbook) {
// 获取当前选中的单元格
const selectedRange = workbook.getSelectedRange();
// 获取单元格的值
const value = selectedRange.getValue();
// 如果值是文本,则转换为大写
if (typeof value === "string") {
const upperCaseValue = value.toUpperCase();
selectedRange.setValue(upperCaseValue);
} else {
console.log("选中的单元格不是文本。");
}
}
如何使用:
- 在 Excel 网页版或 Microsoft 365 中,转到
自动化选项卡。 - 点击
新建脚本,然后将上述代码粘贴进去。 - 保存并命名脚本(如
ToUpperCase)。 - 之后,您只需选中一个单元格,然后从脚本库中运行
ToUpperCase,即可执行该“命令”。
| 情况 | 适用场景 | 核心技术 | 如何执行 |
|---|---|---|---|
| VBA 宏 | 个人电脑上的复杂自动化、自定义功能、界面交互。 | VBA (Visual Basic for Applications) | Alt+F8 运行宏,或设置快捷键/按钮。 |
| 解析文本命令 | 需要根据工作表中的特定文本来动态执行操作。 | VBA | 编写 VBA 代码读取单元格内容,用 Select Case 等逻辑执行。 |
| Power Query | 数据清洗、转换、整合,处理结构化文本数据。 | M 语言 | 数据 -> 从表格/区域,在 Power Query 编辑器中通过图形界面或 M 公式操作。 |
| Office 脚本 | 云端自动化、跨平台(Web/桌面)、与 Power Automate 集成。 | TypeScript | 自动化 选项卡,直接在 Excel 中编写和运行。 |
您可以根据您的具体需求,选择最适合的“命令文本”实现方式,对于大多数个人用户和一次性任务,VBA 宏是最直接和强大的工具,对于数据分析师,Power Query 是首选,对于现代化的云工作流,Office 脚本 是未来的方向。
