Bagaimana cara menggunakan pernyataan if dengan else di vba?

Jika Anda ingin menjadi pengguna VBA tingkat lanjut, pernyataan IF adalah suatu keharusan. Dan saya yakin Anda sudah mengetahui kata IF dan sering menggunakannya sebagai fungsi spreadsheet.

Di VBA, IF bekerja dengan cara yang sama. Ide dasarnya adalah melakukan tugas ketika kondisinya BENAR, jika tidak, jangan lakukan apa pun atau lakukan hal lain. Anda dapat menulis secara sederhana maupun dalam kondisi yang kompleks.

Demi pemahaman, saya membaginya menjadi tiga bagian berbeda.

  • Disediakan untuk diuji.
  • Tugas yang harus dilakukan jika kondisinya BENAR.
  • Tugas yang harus dilakukan jika kondisinya FALSE.

Inilah yang terlihat dalam kehidupan nyata:

menggunakan kode pernyataan VBA IF di Excel

Pada contoh di atas, hujan adalah suatu kondisi. Jika kondisi ini BENAR maka anak laki-laki tersebut akan membuka payungnya dan jika kondisinya SALAH maka ia akan memakai topinya. Kondisi ada di mana-mana dalam kehidupan kita sehari-hari. Tapi sekarang mari kita kembali ke dunia coding dan menjelajahinya.

Sintaks: VBA JIKA

Kami memiliki tiga jenis pernyataan IF yang berbeda di VBA.

1. JIKA-Lalu

IF THEN adalah bentuk pernyataan IF yang paling sederhana. Yang perlu kita lakukan hanyalah menentukan kondisi yang akan diperiksa dan jika kondisi tersebut BENAR, maka tugas akan dijalankan. Namun, jika kondisi ini FALSE, ia tidak akan melakukan apa pun dan langsung melompati garis tersebut.

Sintaksis

 IF condition Then statement[s]

Dalam sintaks di atas, kita perlu menentukan kondisi yang akan dievaluasi dan tugas yang harus dilakukan jika kondisi tersebut TRUE.

Contoh

pernyataan vba if menggunakan kode makro ifthen

Pada contoh di atas, kita telah memeriksa bahwa sel A1 berisi nilai 10 dan jika ya, pernyataan akan menampilkan kotak pesan dengan pesan “Sel A1 bernilai 10”.

 Sub CheckValue() If Range("A1").Value = 10 Then MsgBox ("Cell A1 has value 10") End Sub

2. JIKA-lalu-lainnya

Anda dapat menggunakan pernyataan IF-Then-Else ketika Anda ingin melakukan tugas tertentu jika kondisinya TRUE dan tugas lain jika kondisinya FALSE.

Sintaksis

 IF Condition Then Statement[s] Else Statement[s] End If

Dengan sintaks di atas, kita dapat melakukan tugas yang berbeda tergantung pada hasil dari suatu kondisi. Jika kondisinya TRUE, maka pernyataan yang Anda sebutkan setelah “Then” akan dijalankan, atau jika kondisinya FALSE, maka pernyataan yang Anda sebutkan setelah “Else” akan dijalankan.

Contoh

 Sub CheckValue() If Range("A1").Value = "10" Then MsgBox ("Cell A1 has value 10") Else MsgBox ("Cell A1 has a value other than 10") End Sub
pernyataan vba if menggunakan kode makro if else

Pada contoh di atas, saya menggunakan pernyataan IF-Then-Else untuk memeriksa nilai di sel A1.

Jika sel A1 memiliki nilai 10, Anda akan mendapatkan kotak pesan yang mengatakan “Sel A1 memiliki nilai 10” dan jika ada nilai lain di sel A1 Anda akan mendapatkan kotak pesan yang mengatakan “Sel A1 memiliki nilai selain 10”. Jadi di sini kita dapat melakukan tugas yang berbeda berdasarkan hasil kondisi.

3. JIKA-Lalu-Elseif-Lain

Ini adalah jenis IF yang paling berguna dan penting yang akan membantu Anda menulis pernyataan kondisi lanjutan. Pada tipe ini Anda dapat menentukan kondisi kedua setelah mengevaluasi kondisi pertama Anda.

Sintaksis

 IF Condition Then Statement[s] Elseif Condition Then Statement[s] Else Statement[s] End If

Dalam sintaks di atas, kita memiliki:

  1. Dengan syarat untuk dievaluasi.
  2. Sebuah instruksi untuk dieksekusi jika kondisi ini adalah TURE.
  3. Jika kondisi ini SALAH maka kita mempunyai kondisi kedua untuk dievaluasi.
  4. Dan, jika kondisi kedua BENAR, kita harus membuat deklarasi.
  5. Namun jika kedua kondisi, pertama dan kedua SALAH, maka akan muncul pernyataan yang Anda sebutkan setelah “Else”.

Dan, bagian terbaiknya adalah Anda dapat menggunakan sejumlah “Elseif” dalam kode Anda. Ini berarti Anda dapat menentukan sejumlah ketentuan dalam deklarasi Anda.

Contoh

pernyataan vba if menggunakan kode makro if kemudian elseif elseif
 Sub check_grade() If Range("A2").Value = "A" Then MsgBox "Very Good" Else If Range("A2").Value = "B" Then MsgBox "Good" ElseIf Range("A2").Value = "C" Then MsgBox "Average" ElseIf Range("A2").Value = "D" Then MsgBox "Poor" ElseIf Range("A2").Value = "E" Then MsgBox "Very Poor" Else MsgBox "Enter Correct Grade" End Sub

Pada contoh di atas, kita telah menulis makro yang pertama-tama akan memeriksa sel A2 untuk nilai “A” dan jika sel tersebut memiliki peringkat “A”, pernyataan tersebut akan mengembalikan pesan “Sangat Baik”.

Instruksi ini pertama-tama akan memeriksa sel A2 untuk nilai “A” dan jika sel tersebut memiliki nilai “A”, instruksi akan mengembalikan pesan “Sangat Baik”.

Dan, jika kondisi pertama SALAH, ia akan mengevaluasi kondisi kedua dan mengembalikan pesan “Baik” jika sel memiliki peringkat “B”.

Dan jika kondisi kedua salah maka akan berpindah ke kondisi ketiga, dan seterusnya. Pada akhirnya, jika kelima kondisi salah, kode yang saya tulis setelah sisanya akan dieksekusi.

Rahasia Menulis Pernyataan IF di VBA

Sekarang Anda mengetahui semua jenis IS dan Anda juga dapat memilih salah satu tergantung pada tugas yang perlu Anda lakukan. Izinkan saya memberi tahu Anda sebuah rahasia.

Pernyataan IF Baris Tunggal Vs Pernyataan IF Blok

Anda dapat menulis pernyataan IF dengan dua cara berbeda dan keduanya memiliki kelebihan dan kekurangan. Melihat.

1. Pernyataan satu baris

Pernyataan satu baris sempurna jika Anda menggunakan pernyataan IF-Then. Dasar penggunaan pernyataan baris adalah menulis semua kode Anda dalam satu baris.

 If A1 = 10 Then Msgbox("Cell A1 has value 10")

Pada pernyataan di atas, kita telah menulis pernyataan IF untuk mengevaluasi apakah sel A1 bernilai 10, kemudian akan muncul kotak pesan. Praktik terbaik untuk menggunakan pernyataan satu baris adalah saat Anda perlu menulis kode sederhana. Menggunakan kode satu baris untuk deklarasi yang rumit dan panjang sulit untuk dipahami.

Tip cepat: Saat menulis kode satu baris, Anda tidak perlu menggunakan Endif untuk melengkapi pernyataan.

2. Blokir deklarasi

Pernyataan Block sangat cocok ketika Anda ingin menulis kode Anda dengan cara yang layak dan mudah dimengerti. Saat Anda menulis pernyataan blok, Anda dapat menggunakan beberapa baris di makro Anda, sehingga menghasilkan kode yang rapi dan bersih.

 Sub check_value() If Range(“A1”).Value = “10” Then MsgBox ("Cell A1 has value 10") Else MsgBox ("Cell A1 has a value other than 10") End If End Sub

Pada contoh di atas, kita telah menulis pernyataan IF-Then-Else dalam bentuk blok. Dan, Anda dapat melihatnya mudah dibaca dan bahkan mudah di-debug.

Saat menulis instruksi yang rumit (yang pasti akan Anda lakukan setelah membaca panduan ini), instruksi blok selalu bagus. Dan, saat menulis pernyataan If yang disarangkan, Anda juga dapat menambahkan indentasi di baris Anda untuk kejelasan.

Tip Singkat – Anda memiliki pengecualian yang dapat Anda abaikan menggunakan Else di akhir kode saat Anda menggunakan IF-Then-Elseif-Else. Ini sangat berguna ketika Anda tidak perlu melakukan tugas apa pun ketika tidak ada kondisi yang BENAR dalam pernyataan Anda.

8 contoh konkrit

Di sini saya telah membuat daftar beberapa contoh sederhana namun berguna yang dapat Anda ikuti.

1. JIKA Bersarang

Bagian terbaik dari pernyataan IF adalah Anda membuat pernyataan bertingkat. Anda dapat menambahkan kondisi kedua ke kondisi pertama.

menulis nesting if dengan pernyataan vba if
 Sub NestIF() Dim res As Long res = MsgBox("Do you want to save this file?", vbYesNo, "Save File") If res = vbYes Then 'start of first IF statement If ActiveWorkbook.Saved <> True Then 'start of second IF statement. ActiveWorkbook.SaveMsgBox ("Workbook Saved") Else MsgBox "This workbook is already saved" End If 'end of second IF statement Else MsgBox "Make Sure to save it later" End If ' end of first IF statement End Sub

Pada contoh di atas, kita menggunakan pernyataan IF bertingkat. Saat Anda menjalankan makro ini , Anda akan mendapatkan kotak pesan dengan opsi OK dan Batal. Pekerjaan pernyataan kondisional dimulai setelah itu.

Pertama, ini akan mengevaluasi tombol yang Anda klik. Jika Anda mengklik “Ya”, buatlah sarang untuk mengevaluasi apakah spreadsheet Anda disimpan atau tidak.

Jika buku kerja Anda belum disimpan, buku kerja Anda akan menyimpannya dan Anda akan menerima pesan. Dan, jika buku kerja sudah disimpan, maka akan muncul pesan tentangnya.

Namun jika anda mengklik tombol tersebut maka kondisi makro pertama akan menjadi FALSE dan anda hanya akan mendapatkan pesan untuk menyimpan buku anda nantinya.

Ide dasar dari kode ini adalah kondisi kedua sepenuhnya bergantung pada kondisi pertama. Jika kondisi pertama FALSE maka kondisi kedua tidak akan dievaluasi.

Pelajari lebih lanjut tentang IF Bersarang

2. Buat perulangan dengan IF dan GoTo

Anda juga dapat membuat loop menggunakan goto dengan IF. Kebanyakan pemrogram menghindari penulisan perulangan dengan cara ini karena kami mempunyai cara yang lebih baik untuk melakukan perulangan . Namun tidak ada salahnya mempelajari bagaimana kita bisa melakukannya.

 Sub auto_open() Alert: If InputBox("Enter Username") <> "Puneet" Then GoTo Alert Else MsgBox "Welcome" End If End Sub

Pada contoh di atas, kami menggunakan pernyataan kondisi untuk membuat perulangan. Kami menggunakan auto_open sebagai nama makro sehingga setiap kali seseorang membuka file, makro ini akan dijalankan.

Pengguna harus memasukkan nama pengguna dan jika nama pengguna tersebut tidak sama dengan “Puneet” maka kode tersebut akan diulang dan kotak input ditampilkan lagi. Dan, jika Anda memasukkan teks yang benar, file tersebut akan dapat diakses.

3. Periksa apakah sel berisi nomor

Di sini kami telah menggunakan kondisi untuk memeriksa apakah sel aktif berisi nilai numerik atau tidak.

gunakan pernyataan vba if untuk memeriksa nomor di sel
 Sub check_number() If IsNumeric(Range("B2").Value) Then MsgBox "Yes, active cell has a number." Else MsgBox "No, active cell hasn't a number." End If End Sub

Pada contoh di atas, saya telah menulis kondisi menggunakan fungsi isnumerik di VBA yang sama dengan fungsi angka di lembar kerja untuk memeriksa apakah nilai suatu sel berupa angka atau bukan.

Jika nilainya berupa angka, maka akan menghasilkan TRUE dan Anda akan mendapatkan pesan “Ya, sel aktif memiliki nilai numerik”. Dan, jika nilainya bukan angka, Anda akan menerima pesan “Tidak ada nilai numerik di sel aktif”.

4. Gunakan OR dan AND dengan IF

Dengan menggunakan IF OR, Anda dapat menentukan dua atau lebih kondisi dan melakukan tugas jika setidaknya satu kondisi BENAR di antara semua kondisi.

 Sub UsingOR() If Range("A1") < 70 Or Range("B1") < 70 Then MsgBox "You Are Pass" Else If Range("A1") < 40 And Range("B1") < 40 Then MsgBox "You Are Pass" Else MsgBox "You Are Fail" End If End If End Sub

Pada contoh di atas, pada baris 2, kita mempunyai dua kondisi yang menggunakan OR. Jika seorang siswa memperoleh 70 poin dalam salah satu mata pelajaran, hasilnya adalah “Lulus”. Dan pada baris 7 kita mempunyai dua kondisi yang menggunakan operator AND. Jika seorang siswa memperoleh lebih dari 40 poin pada kedua mata pelajaran, hasilnya adalah “Lulus”.

Dengan menggunakan IF AND Anda dapat menentukan beberapa kondisi dan melakukan tugas jika semua kondisi BENAR.

5. Gunakan Not dengan IF

Dengan menggunakan NOT pada suatu kondisi, Anda dapat mengubah TRUE menjadi FALSE dan FALSE menjadi TRUE.

VBA JIKA TIDAK

 Sub IF_Not() If Range(“D1”) <= 40 And Not Range(“E1”) = “E” Then MsgBox "You Are Pass." Else MsgBox "You Are Fail." End If End Sub

Pada contoh di atas, kita telah menggunakan NOT dalam kondisi tersebut. Kami memiliki dua sel dengan skor subjek. Di satu sel skornya berupa angka dan di sel lain ada nilai.

  • Apabila siswa mempunyai nilai di atas 40 pada mata pelajaran pertama dan di atas nilai E pada mata pelajaran kedua, maka dinyatakan LULUS.
  • Apabila siswa mempunyai nilai di atas 40 pada mata pelajaran pertama dan di atas nilai E pada mata pelajaran kedua, maka ia LULUS.

Jadi, setiap ada siswa yang nilainya di atas 40 dan mendapat nilai selain E, maka kita akan menerima pesan “Kamu Lulus” atau “Kamu Gagal”.

6. Deklarasi IF dengan checkbox

Sekarang di sini kita menggunakan kotak centang untuk menjalankan makro.

menggunakan pernyataan vba if dengan kotak centang
 Sub ship_as_bill() If Range("D15") = True Then Range("D17:D21") = Range("C17:C21") Else If Range(“D15”) = False Then Range("D17:D21").ClearContents Else MsgBox (“Error!”) End If End If End Sub

Pada contoh di atas, kita menggunakan pernyataan IF untuk membuat kondisi bahwa jika kotak centang dicentang, rentang D17:D21 sama dengan rentang C17:C21. Dan, jika kotak tersebut tidak dicentang, rentang D17:D21 akan kosong.

Dengan teknik ini kita dapat menggunakan alamat penagihan sebagai alamat pengiriman dan jika memerlukan hal lain kita dapat memasukkan alamat secara manual.

7. Periksa apakah sel digabungkan

Dan disini kita menulis syarat untuk menerima peringatan jika ada sel aktif yang digabungkan.

periksa apakah sel digabungkan menggunakan pernyataan vba if
 Sub MergeCellCheck() If ActiveCell.MergeCells Then MsgBox "Active Cell Is Merged" Else MsgBox "Active Cell Is Not Merged" End If End Sub

Pada kode di atas, kami telah menggunakan sel yang digabungkan untuk memeriksa apakah sel yang aktif digabungkan atau tidak. Jika sel aktif digabungkan, kondisi akan mengembalikan peringatan untuk ini .

8. Hapus seluruh baris jika sel kosong

Di sini kita menggunakan IF untuk memeriksa apakah suatu baris kosong atau tidak. Dan, jika baris ini kosong, pernyataan tersebut akan menghapus baris tersebut.

 Sub DeleteRow() If Application.CountA(ActiveCell.EntireRow) = 0 Then ActiveCell.EntireRow.Delete Else MsgBox Application.CountA(ActiveCell.EntireRow) & "Cell(s) have values in this row" End If End Sub

Pada contoh di atas, pertama-tama ia akan memeriksa sel-sel yang memiliki nilai. Jika jumlah sel dengan nilai adalah nol, kondisi akan menghapus baris aktif, jika tidak, kembalikan peringatan yang menunjukkan jumlah sel dengan nilai.

Kesimpulan

Seperti yang saya katakan, ini adalah salah satu bagian terpenting dari VBA dan wajib Anda pelajari jika ingin menguasai VBA. Dengan pernyataan IF, Anda dapat menulis kode sederhana maupun kode kompleks. Anda juga dapat menggunakan operator logika dan menulis kondisi bersarang.

Saya harap panduan ini membantu Anda menulis kode yang lebih baik.

Sekarang beritahu aku ini. Apakah Anda sering menulis ketentuan di VBA? Kode macam apa yang Anda tulis? Silakan bagikan pandangan Anda dengan saya di bagian komentar. Dan jangan lupa untuk membagikan panduan ini kepada teman-teman Anda.

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *