VBA IIF

Excel VBA IIF

Sekiranya anda adalah 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.

Apakah Keadaan IIF di VBA?

Ini sangat serupa dengan keadaan JIKA kita tetapi sifatnya sedikit berbeza. Keadaan "VBA IIF" menguji ekspresi atau ujian logik yang diberikan dan mengembalikan hasilnya 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 apa yang seharusnya menjadi hasil bahagian yang BENAR.
  • Bahagian Palsu: Sekiranya ujian logik adalah SALAH maka apa yang seharusnya menjadi hasil bahagian FALSE.

Kita boleh memasukkan hasil sendiri dengan bahagian yang BETUL & SALAH. Walaupun hujah kelihatan serupa dengan keadaan JIKA ini 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 IIF di mana dengan keadaan IF memerlukan minimum 5 baris untuk mendapatkan hasil yang sama.

Contoh Fungsi VBA IIF

Berikut adalah contoh Fungsi VBA IIF di excel.

Anda boleh memuat turun Templat Excel VBA IIF ini di sini - Templat Excel VBA IIF

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" tetapkan 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 yang harus menjadi hasilnya. Saya akan memberikan hasilnya sebagai "Nombor 1 lebih besar daripada Nombor 2".

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

Sekarang nilai pemboleh ubah akan menjadi salah satu di bawah.

Sekiranya Benar: "Nombor 1 lebih besar daripada Nombor 2"

Sekiranya Salah: "Nombor 1 kurang dari Nombor 2"

Langkah 9: Mari tunjukkan hasilnya di kotak mesej di VBA.

Kod:

 Sub IIF_Contoh () Dim FinalResult Sebagai 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") Sub M End FinalResult MsgBox 

Sekarang mari jalankan kod dan lihat hasilnya.

Oleh kerana nilai Nombor 1 adalah 105 yang lebih besar daripada nilai Nombor 2 dari 100, kami mendapat hasilnya sebagai "Nombor 1 lebih besar daripada Nombor 2". Oleh kerana Ungkapan itu BENAR, keadaan IIF memberikan hasil ini.

Contoh # 2 - JIKA vs IIF

Anda pasti tertanya-tanya apa perbezaan antara IF & IIF. Ya, ada perbezaan dalam pengekodan. Contohnya, lihat kod keadaan IF.

Kod:

 Sub IIF_Contoh () Dim FinalResult As String Dim Number1 As Long Dim Number2 As Long Number1 = 105 Number2 = 100 If Number1> Number2 Maka MsgBox "Number 1 is Greater than Number 2" Else MsgBox "Number 1 is kurang dari Number 2" End If Sub Akhir 

Dengan menggunakan IF dahulu, kami telah menggunakan ujian logik.

 Sekiranya Nombor1> Nombor2 Maka 

Kemudian jika ujian logik itu benar, kami telah menerapkan hasilnya.

Kotak Mesej "Nombor 1 Lebih Besar daripada Nombor 2"

Sekiranya ujian logik itu salah, kami telah menggunakan keputusan yang berbeza.

Kotak Mesej "Nombor 1 kurang dari Nombor 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

Like how we use nested IF to test multiple conditions similarly we can use multiple IIF as well. Take a look at the below code.

Code:

 Sub IIF_Example2() Dim FinalResult As String Dim Marks As Long Marks = 98 FinalResult = IIf(Marks > 90, "Dist", IIf(Marks > 80, "First", IIf(Marks > 70, "Second", IIf(Marks > 60, "Third", "Fail")))) MsgBox FinalResult End Sub 

The above IIF condition tests five logical tests and returns the result accordingly.