iT邦幫忙

0

【Excel VBA入門】4、條件語句

  • 分享至 

  • xImage
  •  

IF條件句

基本

使用MsgBox("請問是否正確?", vbYesNo)需使用回傳值賦值,如沒有賦值給變數,則會產生錯誤,必須改用MsgBox "請問是否正確?", vbYesNo。

Sub test()
    'Dim result As VbMsgBoxResult
    result = MsgBox("請問是否正確?", vbYesNo)
    
    If result = vbYes Then
        MsgBox "是"
    Else
        MsgBox "否"
    End If
    
    MsgBox "測試", vbYesNo
    
    
End Sub


其他運算子

運算子 解說
a=b a等於b時為真
a<b a小於b時為真
a>b a大於b時為真
a<>b a不等於b時為真
a<=b a小於等於b時為真
a>=b a大於等於b時為真

使用「<」來建立條件式

Sub test()
    Dim result As Integer
    
    age = InputBox("請問你幾歲?")
    
    If age < 20 Then
        MsgBox "未成年"
    Else
        MsgBox "成年"
    End If
    
    
End Sub

ElseIf 用法

ElseIf 可以讓條件式串聯無數多個條件。

Sub test()
    Dim result As Integer
    
    num = InputBox("請輸入一個數字")
    
    If num < 20 Then
        MsgBox "<20"
    ElseIf num < 40 Then
        MsgBox "20~39"
    ElseIf num < 60 Then
        MsgBox "40~59"
    Else
        MsgBox "other"
    End If
    
    
End Sub


巢狀結構

Sub test()
    Dim result As Integer
    
    num = InputBox("請輸入一個數字")
    
    If num < 50 Then

        If num < 25 Then
            MsgBox "0~24"
            
        ElseIf num < 50 Then
            MsgBox "25~49"
        
        End If
        
        
    Else
        MsgBox "other"
        
    End If
    
End Sub

邏輯運算子

邏輯運算子 意思
A AND B A和B必須皆為真,才為真。
A OR B A或B一方為真,則為真。
NOT (A) A成立時為假,不成立時為真

AND範例

Sub test()
    Dim result As Integer
    
    num = InputBox("請輸入一個數字")
    
    If (num > -1) And (num < 30) Then
        
        MsgBox "0~29"
    Else
        MsgBox "other"
        
    End If 
End Sub

NOT範例

Sub test()
    Dim result As Integer
    
    num = InputBox("請輸入一個數字")
    
    If Not (num < 50) Then
        
        MsgBox "大於50"
    Else
        MsgBox "小於50"
        
    End If
End Sub

補充:位元運算

Sub test()

    If 1 Then
        MsgBox "正確"
    Else
        MsgBox "錯誤"
        
    End If

End Sub

Select Case語句

IF條件語句雖然可以處理各種條件,但當條件的變數只有一個時,使用Select Case句是比較簡單的寫法。
其中 Case後方有多種寫法,可以省略Is,也可以用To的用法。

Sub test()
    Dim result As Integer
    
    num = InputBox("請輸入一個數字")
    
    
    Select Case num
        Case Is < 10
            MsgBox "小於10"
        Case Is < 30
            MsgBox "大於10小於30"
        Case 30
            MsgBox "剛好30"
        Case 31, 32
            MsgBox "31或32"
        Case Is <= 37, 38, 39
            MsgBox "33到39"
        Case 40 To 49
            MsgBox "40~49"
        Case Else:
            MsgBox "都不在範圍內"
    End Select
End Sub

如果某個條件已經達成,後面的條件式就不會再判斷了,會直接跳到End Select。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言