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