Cấu trúc điều khiển trong VBA

0
13

Cấu trúc điều khiển trong VBA bao gồm:

Giống như hàm IF trong Excel, cấu trúc IF thường sử dụng để xét tính logic Đúng/Sai của 1 vấn đề. Cấu trúc bao gồm:

  • Nếu mệnh đề Đúng (thỏa mãn) thì xảy ra điều gì
  • Nếu mệnh đề Không Đúng (không thỏa mãn) thì xảy ra điều gì

Cấu trúc IF ELSE trong VBA Excel dạng đơn giản

Chỉ xét trong trường hợp mệnh đề đúng và thường được viết như sau

Option Explicit
Sub Gender()
    
    Dim blnGender As Boolean
    blnGender = True
    
    If blnGender Then
        MsgBox "Male"
    End If
    
End Sub

Cấu trúc rút gọn hơn có thể viết rút gọn trên cùng một dòng

Option Explicit
Sub Gender()
    
    Dim blnGender As Boolean
    
    If Not blnGender Then MsgBox "Female"
    
End Sub

Cấu trúc IF ELSE trong VBA Excel dạng đầy đủ

Bao gồm cả trường hợp mệnh đề Đúng và mệnh đề Không Đúng.

Option Explicit
Sub Gender()
    
    Dim blnGender As Boolean
    
    If blnGender Then
        MsgBox "Male"
    Else
        MsgBox "Female"
    End If
    
End Sub

Cấu trúc IF ELSE trong VBA Excel lồng nhau

Với những yêu cầu phức tạp hơn, cấu trúc một lần IF không thể đáp ứng hết các điều kiện. Do vậy, cần thiết phải sử dụng lồng ghép nhiều cấu trúc IF trong một công thức.

Option Explicit
Sub Classify()
    
    Dim intPoint As Integer
    intPoint = 8
    
    If intPoint >= 9 Then
        MsgBox "Excellent"
    Else
        If intPoint >= 7 Then
            MsgBox "Good"
        Else
            If intPoint >= 5 Then
                MsgBox "Average"
            Else
                MsgBox "Poor"
            End If
        End If
    End If
End Sub

Với ví dụ trên chúng ta có thể rút gọn thành

Option Explicit
Sub Classify()
    
    Dim intPoint As Integer
    intPoint = 8
    
    If intPoint >= 9 Then
        MsgBox "Excellent"
    ElseIf intPoint >= 7 Then
        MsgBox "Good"
    ElseIf intPoint >= 5 Then
        MsgBox "Average"
    Else
        MsgBox "Poor"
    End If
End Sub

Cấu trúc SELECT CASE trong VBA

Select Case có thể thực hiện kiểm tra biến theo kiểu chuỗi hoặc kiểu số. Nhưng thông thường chúng ta hay sử dụng kiểm tra biến dữ liệu là số. Cùng ví dụ xếp loại học sinh dùng Select Case như sau

Option Explicit
Sub Classify()
    
    Dim intPoint As Integer
    intPoint = 8
    
    Select Case intPoint
        Case Is >= 9
            MsgBox "Excellent"
        Case Is >= 7
            MsgBox "Good"
        Case Is >= 5
            MsgBox "Average"
        Case Else
            MsgBox "Poor"
    End Select
    
End Sub

Select Case có thể được nhóm lại với các điều kiện trùng nhau, ví dụ

Option Explicit
Sub DayInMonth()
    
    Dim intMonth As Integer
    intMonth = 8
    
    Select Case intMonth
        Case 1, 3, 5, 7, 8, 10, 12
            MsgBox "Tháng " & intMonth & " có 31 ngày"
        Case 4, 6, 9, 11
            MsgBox "Tháng " & intMonth & " có 30 ngày"
        Case Else   ' 2
            MsgBox "Tháng " & intMonth & " có 28/29 ngày"
    End Select
    
End Sub

 

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây