显示“开发工具”选项卡

  1. 单击“文件”选项卡。
  2. 单击“选项”。
  3. 单击“自定义功能区”。
  4. 在“自定义功能区”和“主选项卡”下,选中“开发工具”复选框。

Quick Start

See Excel 2010 中的 VBA 入门.aspx)

创建一个新的空白工作簿

  1. 单击”开发工具”选项卡上的”宏”按钮。

  2. 在随后出现的”宏”对话框中,在”宏名称”下键入 Hello。

  3. 单击”创建”按钮打开 Visual Basic 编辑器,其中包含已键入的新宏的大纲。

VBA 是一种功能齐全的编程语言,并具有一个相应的功能齐全的编程环境。本文只介绍那些您刚开始编程所使用的工具,而不介绍 Visual Basic 编辑器中的大部分工具。出于这个原因,请关闭 Visual Basic 编辑器左侧的”属性”窗口,并忽略在代码上方显示的两个下拉列表。

Visual Basic Editor
Visual

Visual Basic 编辑器包含下列代码。

1
2
3
Sub Hello()
End Sub

Sub 代表子例程,现在可将它定义为”宏”。运行 Hello 宏将运行 Sub Hello() 与 End Sub 之间的任何代码。

现在,请编辑宏,使其类似于以下代码。

1
2
3
Sub Hello()
MsgBox ("Hello, world!")
End Sub

返回到 Excel 中的”开发工具”选项卡,再次单击”宏”按钮。 在随后出现的列表中选择”Hello”宏,然后单击”运行”显示包含文本”Hello, world!”的小型消息框。

在”快速访问工具栏”中为宏创建按钮

  1. 单击”文件”选项卡。
  2. 单击”选项”打开”Excel 选项”对话框,然后单击”快速访问工具栏”。
  3. 在”从下列位置选择命令:”下的列表中,选择”宏”。在随后出现的列表中查找类似于”Book1!Hello”的文本,并选择该文本。
  4. 单击”添加 >>”按钮将宏添加到右侧的列表中,然后单击”修改…”按钮选择与该宏关联的按钮图像。
  5. 单击”确定”。现在,您应在”快速访问工具栏”中的”文件”选项卡上方看到新按钮。

工作表操作

以下代码将所有工作表重命名为工作表中 B1 单元格的值。

1
2
3
4
5
6
7
8
9
10
Sub RenameWorksheets()
'遍历每个工作表
For Each myWorksheet In Worksheets
'B1单元格非空
If myWorksheet.Range("B1").Value <> "" Then
'重命名工作表的名称为 B1 单元格的值。
myWorksheet.Name = myWorksheet.Range("B1").Value
End If
Next
End Sub

Sheets 集合可能包含 Chart 或 Worksheet 对象。如果您需要使用只包含一种类型的工作表,请查看该工作表类型的对象主题。

1
Sheets("Sheet1").Name = "New Name"

可以修改为:

1
Worksheets("Sheet1").Name = "New Name"

使用 CellFormat 对象 来操作单元格。

1
Range("A1").Select

See:

  1. Excel 对象模型参考
  2. VBA 语言参考

图标操作

以下代码使用选定数据绘制图标,默认为条形图。

1
2
3
4
5
6
7
8
9
Sub AssortedTasks()
Dim myChart As ChartObject
Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)
With myChart
.Chart.SetSourceData Source:=Selection
End With
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

添加一行以创建图表对象,并将 myChart 变量分配给它。

1
Set myChart = ActiveSheet.ChartObjects.Add(100, 50, 200, 200)

括号中的数字决定图表的位置和大小。前两个数字是图表左上角的坐标,后面的两个数字是宽度和高度。

1
2
3
With myChart
.Chart.SetSourceData Source:=Selection
End With

这是 VBA 编程中的一个常用模式。首先,创建一个对象,将其分配给一个变量,然后使用 With…End With 构造来对该对象执行操作。示例代码指示图表使用当前选择内容作为其数据。(想想 Javascript 中的 with 用法)

在单元格 A1:A5 中键入一些数字,选择这些单元格,然后运行该宏。图表将按默认类型(条形图)显示。

使用 VBA 创建的条形图
使用

单元格操作

修改单元格数据

1
Application.ActiveSheet.Range("a4").Value = 8

从用户获取输入,并使用该输入修改数据。

1
2
myInput = InputBox("Please type a number:")
Application.ActiveSheet.Range("a5").Value = myInput

保存和关闭工作簿。

1
2
ActiveWorkbook.Save
ActiveWorkbook.Close

用户窗体

See

Tutorial

热感地图

Excel & VBA

如果想亲自动手,请参考: (1 封私信 / 1 条消息) 怎么在 Excel 上做数据地图? - 知乎

下载:

See:

Excel 的 VBA 现在还算是办公利器吗? - Python - 知乎

ECharts