VBA IIF - Bagaimana Menggunakan Fungsi VBA IIF di Excel? (dengan Contoh)

Isi kandungan

Excel VBA IIF

Sekiranya anda pengguna biasa makro VBA, maka anda pasti menemui fungsi yang disebut "IIF", atau anda mungkin pernah melihat fungsi ini di internet. Pada pandangan pertama, kerana anda pasti menyangka itu adalah syarat JIKA seperti penyataan IF biasa kami di Excel. Tetapi ini bukan pernyataan IF yang sama yang kami gunakan untuk menilai ujian logik dan mendapatkan hasil berdasarkan kriteria yang kami berikan. Dalam artikel ini, kami akan membawa anda melalui keadaan "VBA IIF" di VBA.

Apa Keadaan IIF dalam VBA?

Ini sangat serupa dengan keadaan JIKA kita tetapi sifatnya sedikit berbeza. Keadaan "VBA IIF" menguji ekspresi atau ujian logik yang diberikan dan mengembalikannya sama ada BENAR atau SALAH.

Sintaks VBA IIF

Lihat sintaks fungsi IIF.

  • Ungkapan: Ini hanyalah ujian logik yang ingin kami laksanakan.
  • Bahagian Ture: Sekiranya ujian logik itu BENAR, maka apakah bahagian yang benar.
  • Bahagian Palsu: Sekiranya ujian logik itu SALAH, maka apa yang harus menjadi hasil bahagian FALSE.

Kita boleh memasukkan hasil sendiri dengan bahagian yang BENAR & SALAH. Walaupun hujah kelihatan serupa dengan syarat JIKA, ini akan sedikit berbeza. Kita akan melihatnya dalam contoh fungsi Excel VBA IIF.

Salah satu perbezaan utama antara "IF" biasa dan "IIF" ini adalah kita dapat mengurangkan kod menjadi satu baris dengan Iwherewith dengan keadaan IF, dan memerlukan minimum 5 baris untuk mendapatkan hasil yang sama.

Contoh Fungsi VBA IIF

Berikut adalah contoh Fungsi VBA IIF di excel.

Contoh # 1 - VBA IIF

Ok, kita akan melihat satu contoh ringkas fungsi IIF. Sekarang kita akan menguji sama ada satu nombor lebih besar daripada atau kurang daripada nombor lain. Ikuti langkah di bawah untuk menulis kod VBA.

Langkah 1: Mulakan makro.

Langkah 2: Tentukan pemboleh ubah sebagai String dalam VBA.

Kod:

Sub IIF_Contoh () Dim FinalResult Sebagai String End Sub

Langkah 3: Tentukan dua lagi pemboleh ubah sebagai Panjang dalam VBA.

Kod:

Sub IIF_Contoh () Dim FinalHasil Sebagai String Dim Number1 As Long Dim Number2 As Long End Sub

Langkah 4: Sekarang, untuk pemboleh ubah “Number1” berikan nilai 105 dan untuk pemboleh ubah “Number2” berikan nilai 100.

Kod:

Sub IIF_Contoh () Dim FinalHasil Sebagai String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 End Sub

Langkah 5: Sekarang, untuk pemboleh ubah yang ditentukan pertama, "FinalResult," kita akan menetapkan hasil fungsi IIF. Oleh itu, buka IIF untuk pemboleh ubah.

Langkah 6: Berikan ungkapan sebagai Number1> Number2.

Langkah 7: Sekarang, jika ungkapan itu BENAR, apa hasilnya. Saya akan memberikan hasilnya sebagai "Nombor 1 lebih besar daripada Nombor 2".

Langkah 8: Sekarang, jika ungkapan itu SALAH, apa hasilnya. Saya akan memberikan hasilnya sebagai "Nombor 1 kurang dari Nombor 2".

Sekarang nilai pemboleh ubah akan menjadi salah satu di bawah.

If True: “Number 1 is greater than Number 2.”

If False: “Number 1 is less than Number 2.”

Step 9: Let’s show the result in a message box in VBA.

Code:

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 is Greater than Number 2", "Number 1 is Less than Number 2") MsgBox FinalResult End Sub

Now let’s run the code and see the result.

Since the Number 1 value is 105, which is greater than the Number 2 value of 100, we got the result as “Number 1 is Greater than Number 2”. Since the Expression is TRUE, the IIF condition returned this result.

Example #2 - IF vs. IIF

You must be wondering what the difference between IF & IIF is. Yes, there is a difference in coding. For example, look at the IF condition code.

Code:

Sub IIF_Example() Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Then MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is Less than Number 2" End If End Sub

Using IF first, we have applied a logical test.

If Number1> Number2 Then

Then if the logical test is true, we have applied the result.

MsgBox "Number 1 is Greater than Number 2"

Then if the logical test is false, we have applied the different results.

MsgBox "Number 1 is Less than Number 2"

Kedua-dua fungsi menghasilkan hasil yang sama, tetapi dengan IIF, kita dapat membuat kod dalam satu baris sahaja, di mana pernyataan IF memerlukan beberapa baris.

Contoh # 3 - Keadaan IIF Bersarang VBA

Seperti bagaimana kita menggunakan IF bersarang untuk menguji pelbagai keadaan dengan serupa, kita juga dapat menggunakan beberapa IIF. Lihat kod di bawah.

Kod:

Sub IIF_Contoh2 () Dim FinalResult Sebagai String Dim Marks Long Marks = 98 FinalResult = IIf (Marks> 90, "Dist", IIf (Marks> 80, "First", IIf (Marks> 70, "Second", IIf (Marks) > 60, "Ketiga", "Gagal")))) MsgBox FinalResult End Sub

Keadaan IIF di atas menguji lima ujian logik dan mengembalikan hasilnya dengan sewajarnya.

Artikel menarik...