VBA IIF | Làm thế nào để sử dụng hàm VBA IIF trong Excel? (với các ví dụ)

Excel VBA IIF

Nếu bạn là người thường xuyên sử dụng macro VBA thì chắc hẳn bạn đã bắt gặp chức năng có tên “IIF” hoặc bạn có thể đã thấy chức năng này trên internet. Ngay từ cái nhìn đầu tiên, chắc hẳn bạn đã nghĩ đó là điều kiện IF giống như câu lệnh IF thông thường của chúng ta trong Excel. Nhưng đây không phải là câu lệnh IF mà chúng tôi sử dụng để đánh giá các bài kiểm tra logic và đưa ra kết quả dựa trên các tiêu chí mà chúng tôi đưa ra. Trong bài viết này, chúng tôi sẽ đưa bạn qua điều kiện “VBA IIF” trong VBA.

Điều kiện IIF làm gì trong VBA?

Điều này rất giống với điều kiện IF của chúng ta nhưng hơi khác về bản chất. Điều kiện “VBA IIF” kiểm tra biểu thức hoặc kiểm tra logic được cung cấp và trả về kết quả là TRUE hoặc FALSE.

Cú pháp VBA IIF

Hãy xem cú pháp của hàm IIF.

  • Biểu hiện: Đây không là gì ngoài bài kiểm tra logic mà chúng tôi muốn tiến hành.
  • Phần chắc chắn: Nếu bài kiểm tra lôgic là ĐÚNG thì kết quả của phần ĐÚNG sẽ là bao nhiêu.
  • Phần Sai: Nếu bài kiểm tra logic là FALSE thì kết quả của phần FALSE sẽ là bao nhiêu.

Chúng ta có thể nhập kết quả của riêng mình với phần TRUE & FALSE. Mặc dù các đối số trông tương tự như đối số của điều kiện IF, điều này sẽ hơi khác một chút. Chúng ta sẽ thấy điều đó trong các ví dụ về hàm VBA IIF trong Excel.

Một trong những điểm khác biệt chính giữa “IF” thông thường và “IIF” này là chúng ta có thể giảm mã xuống một dòng duy nhất với IIF trong đó với điều kiện IF, cần tối thiểu 5 dòng để có cùng một kết quả.

Ví dụ về hàm VBA IIF

Dưới đây là các ví dụ về Hàm VBA IIF trong excel.

Bạn có thể tải xuống Mẫu VBA IIF Excel này tại đây - Mẫu VBA IIF Excel

Ví dụ # 1 - VBA IIF

Ok, chúng ta sẽ xem một ví dụ đơn giản về hàm IIF. Bây giờ chúng ta sẽ kiểm tra xem một số lớn hơn hay nhỏ hơn một số khác. Làm theo các bước dưới đây để viết mã VBA.

Bước 1: Khởi động macro.

Bước 2: Định nghĩa biến là Chuỗi trong VBA.

Mã:

 Sub IIF_Example () Dim FinalResult làm chuỗi kết thúc Sub 

Bước 3: Xác định thêm hai biến là Long trong VBA.

Mã:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long End Sub 

Bước 4: Bây giờ cho biến “Number1” gán giá trị 105 và cho biến “Number2” gán giá trị 100.

Mã:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub 

Bước 5: Bây giờ đối với biến được định nghĩa đầu tiên “FinalResult”, chúng ta sẽ gán kết quả của hàm IIF. Vì vậy, hãy mở IIF cho biến.

Bước 6: Cung cấp biểu thức dưới dạng Number1> Number2.

Bước 7: Bây giờ nếu biểu thức là TRUE thì kết quả sẽ là gì. Tôi sẽ gán kết quả là “Số 1 lớn hơn Số 2”.

Bước 8: Bây giờ nếu biểu thức là FALSE thì kết quả sẽ là gì. Tôi sẽ gán kết quả là “Số 1 nhỏ hơn Số 2”.

Bây giờ giá trị biến sẽ là một trong những giá trị dưới đây.

Nếu Đúng: “Số 1 lớn hơn Số 2”

Nếu Sai: “Số 1 nhỏ hơn Số 2”

Bước 9: Hãy hiển thị kết quả trong một hộp thông báo trong VBA.

Mã:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 FinalResult = IIf (Number1> Number2, "Number 1 lớn hơn Number 2", "Number 1 nhỏ hơn Number 2") MsgBox FinalResult End Sub 

Bây giờ chúng ta hãy chạy mã và xem kết quả.

Vì giá trị của Số 1 là 105 lớn hơn giá trị của Số 2 là 100 nên chúng tôi nhận được kết quả là “Số 1 lớn hơn Số 2”. Vì Biểu thức là TRUE, điều kiện IIF trả về kết quả này.

Ví dụ # 2 - IF so với IIF

Bạn phải tự hỏi sự khác biệt giữa IF & IIF là gì. Có, có một sự khác biệt trong mã hóa. Ví dụ, hãy xem mã điều kiện IF.

Mã:

 Sub IIF_Example () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Số 1 Lớn hơn Số 2" Khác MsgBox "Số 1 Nhỏ hơn Số 2" Kết thúc Nếu Kết thúc Sub 

Sử dụng IF trước tiên, chúng tôi đã áp dụng một bài kiểm tra logic.

 Nếu Number1> Number2 thì 

Sau đó, nếu kiểm tra logic là đúng, chúng tôi đã áp dụng kết quả.

MsgBox "Số 1 Lớn hơn Số 2"

Sau đó, nếu kiểm tra logic là sai, chúng tôi đã áp dụng các kết quả khác nhau.

MsgBox "Số 1 nhỏ hơn Số 2"

Cả hai hàm đều trả về cùng một kết quả nhưng với IIF, chúng ta chỉ có thể viết mã trong một dòng duy nhất, trong đó câu lệnh IF yêu cầu nhiều dòng.

Ví dụ # 3 - Điều kiện IIF lồng nhau của VBA

Giống như cách chúng ta sử dụng IF lồng nhau để kiểm tra nhiều điều kiện, tương tự, chúng ta cũng có thể sử dụng nhiều IIF. Hãy xem đoạn mã dưới đây.

Mã:

 Sub IIF_Example2 () Dim FinalResult là chuỗi Dim Marks As Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks) > 60, "Thứ ba", "Thất bại")))) MsgBox FinalResult End Sub 

Điều kiện IIF ở trên kiểm tra năm phép thử logic và trả về kết quả tương ứng.


$config[zx-auto] not found$config[zx-overlay] not found