VBA代表Visual Basic for Applications,这是一种来自Microsoft的事件驱动编程语言,现在主要与Microsoft Office应用程序一起使用。 在VBA中,Excel VBA是最流行的。使用VBA的好处是可以使用线性编程在Excel中建立非常强大的工具。
一、打开Excel中VBA环境
- 使用快捷键:Alt+F11
- 或:点击“文件”选项卡,点击“更多”,点击“选项”进入Excel选项,选择“自定义功能区”,侧主选项卡下找到并勾选“开发工具”,确定后可在Excel上方菜单栏中选择“开发工具”。
点击“开发工具”,可以看到有以下选项。点击Visual Basic进入编辑环境。
二、编写VBA代码
点击插入,选择模块,接下来就可以进行代码的编写了。
首先要创建一个宏并命名,以Sub开始,End Sub结束。在宏中可以调用另一个宏或者函数。
Sub Macro1()
' Macro1 Macro
Worksheets(1).Range("A1").Value = "Hello World"
End Sub
该宏功能是在A1格中写入Hello World。
可能用到的语法:
Sub Macro1()
' Macro1 Macro
Dim ws1 As Worksheet '定义变量ws1为工作表
Dim filePath As String '定义变量filePath为字符串
Dim MaxRowS1 As Integer '定义变量MaxRowS1为整型
Dim com_id_array(1 To 60) As String '定义com_id_array为大小是60的字符串数组
Set ws1 = ThisWorkbook.Worksheets(1) '将ws1设置为当前excel文件的sheet1
ws1.Range("A1").Value = "Hello World" '在当前excel文件的sheet1的A1格中写入Hello World
MaxRowS1 = ws1.UsedRange.Rows.Count '获取sheet1最大行数
filePath = ThisWorkbook.Path & "\com_1.txt" '将当前excel文件路径下的.txt文件路径赋值给filePath
fileNumber = FreeFile
Open filePath For Output As fileNumber '打开文件以供写入
Print #fileNumber, "test" '在文件中写入test并换行
'遍历所有行,若A列单元格中为COM,并且B列单元格有内容,则将B列单元格内容存入数组com_id_array,并写入文件中
For i = 1 To MaxRowS1
If (ws1.Cells(i, "A").Value = "COM") And (Len(ws1.Cells(i, "B").Value) > 0) Then
com_id_array(i) = ws1.Cells(i, "B").Value
Print #fileNumber, com_id_array(i) '在文件中写入并换行
End If
Next i
Close fileNumber '关闭文件
MsgBox("txt创建完成!") '弹出消息框
End Sub
上述代码片段展示了常用的语法,更多语法规则及更详细的内容可以参阅以下网址:
Office VBA 入门 | Microsoft Learn
三、运行宏
代码无需保存即可运行,点击下方按钮运行代码。
或者在开发工具中点击宏,在弹出的提示框中选择想要运行的宏,点击执行。
可以将宏保存在表格内,但带有宏的表格需保存为.xlsm文件。
以上仅仅是关于VBA使用的简单的入门教学,还有更强大的功能等你探索。