VBA学习之基础语法(三)
运算符
-
算术运算符
进行算术运算
Mod 求模运算 / 求商 \ 整除
-
比较运算符
用于比较运算,返回值为
Boolean
型,为True
或False
<> 不等于 表达式1 <> 表达式2 Is 引用对象比较 对象1 ls 对象2 Like 字符串比较
-
连接运算符
用来连接文本字符串,有
+
和&
+
运算符,两边同时都是字符串时进行字符串的连接,其他则进行数值运算&
运算符,无论运算符左右两边是何种尖型的数据,都执行连接运算
-
逻辑运算符
返回结果为
Boolean
型运算符 含义 语法 返回值 And 逻辑与 表达式1 And 表达式2 都为True时,则返回True Or 逻辑或 表达式1 Or 表达式2 只要有一个为True时,返回Ture Not 逻辑非 Not 表达式 相反值 Xor 异或 表达式1 Xor 表达式2 表达式返回的值相同时返回False,否则为True Eqv 等价 表达式1 Eqv 表达式2 表达式返回的值相同时返回True,否则为False Imp 蕴含 表达式1 Imp 表达式2 待学习 优先级
先处理算术运算符,接着处理连接运算符,然后处理比较运算符,最后再处理逻辑运算符。可以用括号来改变运算顺序
语句结构
-
IF...Then
Sub IfTest_2() If Range("A1").Value="" Then MsgBox"没有输入内容" Else MsgBox"已经输入内容" End Sub
-
Select Case
在设置条件时,应尽量把最有可能发生的情况写在前面
Select Case Time Case Is < 0.5 '拿time去和0.5比较 MsgBox "早上好!" Case Is > 0.5 MsgBox "晚上好!" Case Else MsgBox "下午好!" End Select
-
For Next
适用于可确定循环变量终值,循环变量可以不用声明
Dim count As Integer For i = 1 To 100 Step 2 count = count + i Next
-
Do While
更适用于不确定循环变量终值,表达式为
False
时跳出循环Loop
为循环结束标志Do [While 逻辑表达式] (循环体) [Exit Do] (循环体) Loop //有开头判断和结尾判断,While可在Do后或Loop后,区别在于后者执行循环体后进行判断 //Exit Do 为满足一定条件后跳出循环,多用于跳出死循环
Sub xj() Dim xj As String,i As Integer i = 1 Do While Cells(i,"H").Value <> "" ... i = i+1 Loop End Sub
-
Do Until
Do [Until 逻辑表达式] ... Loop //与DO While不同的是当表达式为True时跳出循环
-
For Each...in...Next
和
for...in
有些相似,以一个可迭代序列(集合、数组)进行循环For Each 控件变量 In 集合或数组等 (语句块) Next //控件变量需要事先声明 //若循环对象为数组时,控件变量则要求为Variant型 //若循环对象为集合时,则控件变量为相应的对象类型
'用For Each...Next语句编写一个程序将1到100的自然数输入A1∶A100单元格区域 Public Sub forEachNext() Dim arr(100) As Integer, i As Integer, ch As Variant i = 1 For Each ch In arr Cells(i, "j").Value = i i = i + 1 Next End Sub
-
With
with可以缩减代码量
'如对同一个对象的多个属性进行设置时 Sub propertySet() Worksheets("sheet1").Range("A1").Font.Name = "仿宋" Worksheets("sheet1").Range("A1").Font.Size = 12 ... End Sub '可以简化为 Sub withTest() With Worksheets("sheet1").Range("J2").Font .Name = "微软雅黑" .Size = 12 .Bold = True End With End Sub '每行都有一个小圆点不要忘
-
GoTo
跳转语句,待学习