VBA学习之基础语法(三)

运算符

  • 算术运算符

    进行算术运算

    Mod 求模运算
    / 求商
    \ 整除
    
  • 比较运算符

    用于比较运算,返回值为Boolean型,为TrueFalse

    <>	不等于		表达式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

    跳转语句,待学习

posted @ 2020-09-07 20:45  未月之四  阅读(353)  评论(0编辑  收藏  举报