Bagaimana cara menggunakan fungsi if bersarang vba?
Di VBA, Anda bisa menggunakan pernyataan IF di dalam pernyataan IF lainnya untuk membuat IF bertingkat. Sederhananya, Anda dapat mengeksekusi pernyataan pengujian menggunakan IF berdasarkan hasil pernyataan IF lainnya. Dalam pernyataan bersyarat jenis ini, Anda perlu menguji kondisi kompleks. Mari kita lihat contohnya:
Pada contoh di atas, kita menguji dua kondisi, kondisi1 (1+1=2) dan kondisi2 (2+2=4).
Namun karena pernyataan IF berada di dalam pernyataan IF, VBA akan menguji kondisi pertama terlebih dahulu, lalu melanjutkan ke IF berikutnya.
Pada IF kedua kita mempunyai kotak pesan untuk menunjukkan apakah kondisinya TRUE.
Sub myMacro1() 'first if statement If 1 + 1 = 2 Then 'second if statement If 2 + 2 = 4 Then MsgBox True End If Else MsgBox False End If End Sub
Berikut adalah contoh penggunaan beberapa IF dalam satu IF.
Ada perbedaan antara contoh yang kita gunakan sebelumnya dan contoh di atas: Dalam kode ini, kita menggunakan kondisi bersarang untuk “Else”.
Jika kondisi pertama tidak benar, VBA akan melompat ke “Else” dan menguji kondisi tersebut, dan jika kondisi tersebut tidak benar, maka lanjutkan ke kondisi berikutnya.
Dengan cara ini kita memiliki total empat kondisi untuk diuji.
Sub myMacro2() Dim myScore As Single: myScore = Range("A1").Value If myScore >= 80 Then MsgBox "Excellent" Else If myScore >= 60 And myScore < 80 Then MsgBox "Good" Else If myScore >= 40 And myScore < 60 Then MsgBox "Average" Else If myScore < 40 Then MsgBox "Poor" End If End If End If End If End Sub
Pernyataan IF bertingkat ini akan menguji skor sel A1 dan menampilkan kotak pesan yang sesuai.
IF bersarang VBA dengan banyak baris (IF)
Anda juga dapat menggunakan dua IF berbeda untuk menjalankan kedua hasil (Benar dan Salah).
Pada contoh di atas, seperti yang Anda lihat, pertama kita mempunyai satu kondisi untuk diuji, dan jika kondisi itu BENAR, maka Anda memiliki kondisi lain untuk diuji, dan jika kondisi kedua itu BENAR, Anda akan mendapatkan kotak pesan.
Dan jika kondisi utama salah, Anda memiliki kondisi lain untuk diuji dan Anda akan mendapatkan kotak pesan jika kondisi tersebut benar.
Sub myMacro3() If 1 + 1 = 2 Then If 2 - 1 = 1 Then MsgBox "Condition1 is TRUE." End If Else If 3 - 2 = 1 Then MsgBox "Condition2 is TRUE." End If End If End Sub