VBA Switch Case - Ví dụ để sử dụng câu lệnh chuyển đổi VBA trong Excel

Trường hợp chuyển mạch Excel VBA

Switch Case hoặc Select Case là một câu lệnh có sẵn trong VBA để tiến hành các bài kiểm tra logic, nơi nó hoạt động như một sự thay thế cho câu lệnh IF-THEN trong VBA. Sử dụng Trường hợp chuyển mạch, chúng tôi có thể tiến hành nhiều bài kiểm tra logic và đưa ra kết quả dựa trên nhiều kết quả.

Dưới đây là cú pháp của câu lệnh Switch Case / Select Case.

Mã:

Chọn Trường hợp Trường hợp 1 Giá trị nếu Kết quả thử nghiệm Trường hợp 1 là ĐÚNG Trường hợp 2 Giá trị nếu Kết quả thử nghiệm là ĐÚNG Trường hợp 3 Giá trị nếu Kết quả kiểm tra Trường hợp 3 là ĐÚNG Trường hợp khác Giá trị nếu không có trường hợp nào ở trên là ĐÚNG Kết thúc lựa chọn

: Kiểm tra logic là gì? Chúng ta cần phải nhập bài kiểm tra tại đây.

Trường hợp 1, trường hợp 2: Trong mỗi trường hợp, chúng ta cần test nhiều test logic trong excel.

Làm thế nào để sử dụng tuyên bố trường hợp chuyển mạch VBA?

Ví dụ 1

Trong ô A1, tôi đã nhập giá trị là 550.

Chúng tôi sẽ kiểm tra con số này bằng cách sử dụng các câu lệnh trường hợp chuyển đổi và đến trạng thái là "Hơn 500" nếu giá trị lớn hơn 500 hoặc nếu không, chúng tôi sẽ đến trạng thái là "Dưới 500".

Mở quy trình VBA Sub trước.

Mã:

Sub Switch_Case () End Sub

Mở Câu lệnh trường hợp lựa chọn trong VBA và cung cấp giá trị Phạm vi kiểm tra logic (“A2”).

Mã:

Sub Switch_Case () Chọn phạm vi trường hợp ("A2"). Giá trị cuối Sub

Bây giờ hãy nhập trường hợp đầu tiên là Trường hợp> 500.

Mã:

Sub Switch_Case () Chọn phạm vi trường hợp ("A2"). Giá trị trường hợp> 500 End Sub

Nếu trường hợp này là TRUE, thì kết quả mà chúng ta cần trong ô B, 2, tức là "Hơn 500" là gì.

Mã:

Sub Switch_Case () Chọn phạm vi trường hợp ("A2"). Giá trị trường hợp> 500 phạm vi ("B2"). Giá trị = "Hơn 500" Kết thúc phụ

Bây giờ chúng ta chỉ còn lại một kết quả, tức là câu lệnh Case Else. Nếu trường hợp đầu tiên là FALSE, thì chúng ta cần kết quả là "Nhỏ hơn 500".

Mã:

Sub Switch_Case () Chọn phạm vi trường hợp ("A2"). Giá trị trường hợp là> 500 phạm vi ("B2"). Giá trị = "Hơn 500" phạm vi trường hợp khác ("B2"). Giá trị = "Dưới 500" Kết thúc phụ

Bây giờ hãy đóng câu lệnh bằng cách sử dụng câu lệnh “End Select”.

Mã:

Sub Switch_Case () Chọn Phạm vi trường hợp ("A2"). Giá trị Trường hợp> 500 Phạm vi ("B2"). Giá trị = "Hơn 500" Phạm vi Trường hợp Khác ("B2"). Giá trị = "Dưới 500" Kết thúc Chọn Kết thúc Sub

Chạy mã, chúng tôi sẽ nhận được giá trị trong ô B2.

Vì giá trị trong ô A2 lớn hơn 500, chúng tôi nhận được kết quả là "Hơn 500".

Ví dụ số 2

Bây giờ chúng ta sẽ xem việc sử dụng các ví dụ điển hình hơn. Dưới đây là điểm của học sinh trong kỳ kiểm tra.

Với điểm số này, chúng ta cần phải đạt được Điểm, dưới đây là tiêu chí.

  • Điểm> = 85, Lớp = “Quận”
  • Điểm> = 60, Hạng = “Đầu tiên”
  • Điểm> = 50, Hạng = “Thứ hai”
  • Điểm> = 35, Điểm = “Đạt”
  • Nếu bất kỳ điều gì khác thì Hạng = “Không đạt”.

Mã:

Sub Switch_Case1 ()

 Dim Score As Integer Score = 65 Chọn Case Score Case Is> = 85 MsgBox "Dist" Case Is> = 60 MsgBox "First" Case Is> = 50 MsgBox "Second" Case Is> = 35 MsgBox "Pass" Case Else MsgBox " Fail "End Chọn End Sub

Chạy mã này. Chúng tôi sẽ nhận được điểm trong hộp tin nhắn.

Since the score is more than 60 but less than 85 grade is “First.”

Example #3

We have seen how to find a grade for one student, what about finding a grade for more than one student. Below are the scores of students.

Since more than one student is involved, we need to enclose FOR NEXT loop in VBA. Below is the VBA code.

Code:

Sub Switch_Case2() Dim k As Integer For k = 2 To 7 Select Case Cells(k, 2).Value Case Is>= 85 Cells(k, 3).Value = "Dist" Case Is>= 60 Cells(k, 3).Value = "First" Case Is>= 50 Cells(k, 3).Value = "Second" Case Is>= 35 Cells(k, 3).Value = "Pass" Case Else Cells(k, 3).Value = "Fail" End Select Next k End Sub

Run this code. We will get grades.

Things to Remember

  • Switch Case is often referred to as “Select Case.”
  • The switch is a function, not a statement.
  • Nếu không có kiểm tra logic nào là TRUE, thì bạn có thể chỉ cần chuyển kết quả thay thế trong câu lệnh CASE ELSE và luôn đóng câu lệnh bằng từ “END SELECT”.

thú vị bài viết...