您的位置:

VBA判断:多方位详解

VBA是一种可以编写宏来自动执行Microsoft Office应用程序中常见任务的编程语言。在使用VBA时,我们常常需要使用一些判断语句来确定程序的执行条件,从而实现更加灵活的程序设计。本文将就多个方面来详细介绍VBA中的判断语句。

一、VBA判断语句

VBA中的判断语句主要有if语句和select case语句。if语句可以根据条件的真假来执行不同的语句块,如下所示:

Sub ExampleIf()
    Dim i As Integer
    i = 5
    If i > 10 Then
        MsgBox i & " is greater than 10"
    Else
        MsgBox i & " is less than or equal to 10"
    End If
End Sub

select case语句则可以根据一个表达式的值来执行不同的语句块,如下所示:

Sub ExampleSelectCase()
    Dim i As Integer
    i = 2
    Select Case i
        Case 1
            MsgBox "i = 1"
        Case 2
            MsgBox "i = 2"
        Case Else
            MsgBox "i is not 1 or 2"
    End Select
End Sub

二、VBA判断一个数据是否存在数组中

在VBA中,我们可以使用inStr函数来判断一个数据是否存在于数组中,如下所示:

Sub ExampleInStr()
    Dim Arr() As String
    Arr = Split("apple,pear,orange", ",")
    If InStr(1, Arr(0), "a", vbTextCompare) Then
        MsgBox "The letter 'a' is in the first element of the array."
    End If
End Sub

三、VBA判断数组为空

我们可以使用UBound函数来判断数组是否为空,如下所示:

Sub ExampleUBound()
    Dim Arr() As String
    If UBound(Arr) < 0 Then
        MsgBox "The array is empty."
    End If
End Sub

四、VBA判断一个数字是否在一个集合里

在VBA中,我们可以使用InStr函数来判断一个数字是否在一个集合中,如下所示:

Sub ExampleInStr2()
    Dim s As String
    s = "1,2,3,4,5"
    If InStr(1, s, "3", vbTextCompare) Then
        MsgBox "The number 3 is in the collection."
    End If
End Sub

五、VBA判断是否为数字

在VBA中,我们可以使用IsNumeric函数来判断一个变量是否为数字,如下所示:

Sub ExampleIsNumeric()
    Dim s As String
    s = "123"
    If IsNumeric(s) Then
        MsgBox "The variable 's' is numeric."
    End If
End Sub

六、VBA判断日期在某个区间

在VBA中,我们可以使用DateValue函数来将一个字符串转换为日期格式,然后使用And和Or运算符来判断日期是否在某个区间内,如下所示:

Sub ExampleDateValue()
    Dim d As Date
    d = DateValue("2021/01/01")
    If d >= DateValue("2021/01/01") And d <= DateValue("2022/01/01") Then
        MsgBox "The date is within the specified range."
    End If
End Sub

七、VBA判断题

在VBA中,我们可以使用True和False关键字来代表真和假,从而进行判断,如下所示:

Sub ExampleTrueOrFalse()
    Dim b As Boolean
    b = True
    If b Then
        MsgBox "The variable 'b' is True."
    Else
        MsgBox "The variable 'b' is False."
    End If
End Sub

八、VBA判断sheet存在

在VBA中,我们可以使用WorksheetFunction函数的CountIf方法来判断sheet是否存在,如下所示:

Sub ExampleWorksheetFunction()
    Dim sheetName As String
    sheetName = "Sheet1"
    If WorksheetFunction.CountIf(ThisWorkbook.Sheets("Sheet1").Range("A1"),"=IFERROR(1/0,"""")") > 0 Then
        MsgBox sheetName & " exists."
    Else
        MsgBox sheetName & " does not exist."
    End If
End Sub

九、VBA判断是否为小数

在VBA中,我们可以使用Mod函数来判断一个数是否为小数,如下所示:

Sub ExampleMod()
    Dim d As Double
    d = 1.5
    If d Mod 1 = 0 Then
        MsgBox "The number is not a decimal."
    Else
        MsgBox "The number is a decimal."
    End If
End Sub

十、VBA判断是否为字符串

在VBA中,我们可以使用IsNumeric函数来判断一个变量是否为字符串,如下所示:

Sub ExampleIsNumeric2()
    Dim s As String
    s = "Hello"
    If Not IsNumeric(s) Then
        MsgBox "The variable 's' is a string."
    End If
End Sub