VBA学习总结
最近有个VBA相关的项目,抽空周末看了看,记录下方便查找。
1基本数据类型(12种)
Boolean, Byte, Currency, Date, Decimal,Double, Integer, Long,
Object, Single(单精度浮点型), String, Variant(变体形)
2自定义数据类型
Type 类型名
元素名1 As 类型1
元素名2 As 类型2
……
End Type
例:
Type Worker
NameAs String
SexAs Boolean
End Type
3声明常量、变量、数组
①Const ID AS String = “abc”
②Dim d As Date
d = #Dec 17,2011#
③定义一维数组
Dim Dept (0 to 10) As String
④定义二维(11*11)数组
Dim Arr (10, 10) As Integer
⑤定义动态数组
Dim Dept() As String
将数组扩充10个元素
ReDim Preserve Dept (UBound(Dept) + 10)
4算术运算符
^ 指数运算符
\ 取商运算符
Mod 取余运算符
5比较运算符
<> 不等于
Is 比较两个对象引用是否指向同一个对象
Like 比较字符串是否与模板字符串匹配
6逻辑运算符
And 逻辑与
Or 逻辑或
Not 逻辑非
Xor 逻辑异或
Eqv 逻辑同或
Imp 逻辑蕴涵
例:
exp1 Imp exp2
当 exp1为True,exp2为False是,结果为False;其余情况为True。
7流程控制
①顺序结构
Sub todo()
Debug.Print“Hello”
Debug.Print“World”
End Sub
②条件(选择)结构
例1:
If 条件1 Then
…
Else
…
End If
例2:
If 条件1 Then
…
ElseIf 条件2 Then
…
ElseIf 条件3 Then
…
Else
…
End If
③循环结构
例1:
Dim i As Integer
For i = 10 To 1 Step -1
…
[ExitFor]
…
Next i
例2:
For Each 数组元素 In 数组名
…
[Exit For]
…
Next 数组元素
例3:
Do While 条件1
…
[Exit Do]
…
Loop
例4:
While 条件1
…
Wend
8定义过程
①Sub过程:没有返回值的函数
②Function过程:可以有返回值的函数
例:
Function Sum(a As Integer, b As Integer) AsInteger
Sum= a + b
End Function
过程的调用
例:
Sum 5, 10
参数传递
・传值方式 ByVal
・传引用方式 ByRef(默认)
9 VBA对象
・Application
・Workbooks
・Worksheets
・Range:代表某一单元格,某行,某列或一个选定区域
・Cells:代表一个单元格
例:
Range(“A1”) A列1行
Range(“A1:B5”) 表示A列1行到B列5行的区域
Cells(1,2) 1行2列
获取单元格”A1”所在区域的行数与列数
RCnt = Worksheets(“Sheet1”).Range(“A1”).CurrentRegion.Rows.Count
CCnt = Worksheets(“Sheet1”).Range(“A1”).CurrentRegion.Columns.Count
10使用Excel内置函数
・Application.WorksheetFunction.函数名(参数列表)
例:
Application.WorksheetFunction.Sum(1, 2, 3, 4, 5)