VBA——01篇(入门篇——简单基础语法)
1. 语法格式
1.1 简单语法
Sub test_1()
' 代码块
End Sub
1.2 简单例子
- 简单的一个弹框如下:
Sub test_1() MsgBox "hello" End Sub
- 带简单定义变量的如下:
Sub test_2() Dim name$ name = "lucy" MsgBox name End Sub
2. 变量
2.1 常用数据类型
数据类型 | 简写 |
---|---|
byte | |
Integer | % |
Long | & |
String | $ |
Date |
2.2 声明变量的常用方式
- 如下两种
- dim 变量名 as 数据类型
Dim age As Integer
- dim 变量名数据类型间写
Dim Integer%
- dim 变量名 as 数据类型
2.3 简单例子
- 代码如下:
Sub test_3() Dim num& '&-Long Dim name As String Dim age As Integer Dim birth$ '$-String Dim score%, desc$ '%-Integer num = 1000000001 name = "lucy" age = 18 birth = Format(Date - 18 * 365, "yyyymmdd") score = 98 desc = "beautiful girl" MsgBox "num-" & num & "-->name-" & name & "-->age-" & age & "-->birth-" & birth & "-->score-" & score & "-->desc-" & desc End Sub
- 效果如下:
3. 单元格赋值
3.1 直接赋值
- 几种赋值方法:
[a1]
:单元格简写Range("单元格地址")
Cells(行,列)
- 例子如下:
Sub test_4() [a1] = 123 Range("a2") = "hello,a2" Cells(3, 1) = "hi,a3" End Sub
3.2 拷贝单元格
- 常用写法如下:
Sub test_8() '1. 连格式一起拷贝 Range("a1").Copy [b1] '2. 下面三种写法只拷贝值 [a3] = [a1] Range("a1").Copy Range("c1").PasteSpecial xlPasteValues Range("a1").Copy: Range("d1").PasteSpecial xlPasteValues '这个写法同上,只是没有换行(所以Copy后用 冒号和空格) End Sub
4. 简单的逻辑语法
4.1 简单if
- 如下:
Sub test_10() Dim age1 As Integer Dim age2% age1 = 18 age2 = 22 If age1 < age2 Then MsgBox "age1 < age2" End If End Sub
4.2 简单for循环
4.2.1 简单语法例子
- 简单例子1(计算自然数1到10的和),如下:
Sub test_14() Dim n%, sum% For n = 1 To 10 sum = sum + n Next MsgBox sum End Sub
- 简单例子2(计算1到10中奇数的和),如下:
4.2.2 简单应用实例
- 如下:
Sub test_17() Dim row_num%, cell_num% For row_num = 2 To 4 For cell_num = 2 To 6 If Cells(row_num, cell_num) < 60 Then Cells(row_num, cell_num).Interior.ColorIndex = 3 End If Next cell_num Next row_num End Sub
4.3 简单for each循环
4.3.1 语法格式
- 如下:
For Each 变量名 In 对象集合 '循环体内容 Next
4.3.2 简单例子
- 如下:
Sub test_19() Dim r As Range Dim n% For Each r In Range("a1:c5") n = n + 1 r.Value = n Next End Sub
4.4 do Loop
4.4.1 语法格式
- 如下:
Do '循环体内容 Loop
4.4.2 简单例子
- 如下:
Sub test_20() Dim n%, sum% Do If sum >= 50 Then Exit Do Else sum = sum + n n = n + 1 End If Loop MsgBox "n:" & n & "-->sum:" & sum End Sub
4.5 do while Loop
4.5.1 语法格式
- 如下:
Do while 条件(条件成立之行循环体) '循环体内容 Loop
4.5.2 简单例子
- 改写上面的 do Loop 的例子,如下:
Sub test_21() Dim n%, sum% Do While sum < 50 sum = sum + n n = n + 1 Loop MsgBox "n:" & n & "-->sum:" & sum End Sub
4.6 do until Loop
4.6.1 语法格式
- 如下:
Do until 条件(条件成立退出循环体) '循环体内容 Loop
4.6.2 简单例子
- 改写上面的 do Loop 的例子,如下:
- 写法1:
Sub test_22() Dim n%, sum% Do Until sum >= 50 sum = sum + n n = n + 1 Loop MsgBox "n:" & n & "-->sum:" & sum End Sub
- 写法2:
Sub test_23() Dim n%, sum% Do sum = sum + n n = n + 1 Loop Until sum >= 50 MsgBox "n:" & n & "-->sum:" & sum End Sub
- 写法1: