VBA Logis Operator: DAN, ATAU, TIDAK, JIKA TIDAK di Excel VBA
⚡ Ringkasan Cerdas
VBA Logis OperaOperator AND menggabungkan beberapa kondisi menjadi satu hasil Benar atau Salah. Halaman ini menjelaskan operator AND, OR, dan NOT dengan contoh tombol perintah yang dapat dijalankan, tabel kebenaran lengkap, dan operator XOR, EQV, dan EM.

Excel VBA Logis Operatorso
Misalnya, Anda ingin memproses pesanan pelanggan. Untuk itu, Anda perlu memeriksa terlebih dahulu apakah produk yang dipesan ada atau tidak. Jika ada, Anda juga perlu memeriksa apakah jumlah yang tersedia cukup. Operator logika berguna dalam kasus seperti ini. Operator logika digunakan untuk mengevaluasi lebih dari satu kondisi.
Setiap kondisi secara terpisah dibangun dari operator perbandingan dan mengembalikan nilai True atau False. Sebuah operator logika kemudian menggabungkan hasil tersebut menjadi satu jawaban akhir.
Operator logika utama Excel VBA AND, OR, NOT tercantum dalam tabel di bawah ini:
| S / N | Operator | Deskripsi | Example | Keluaran |
|---|---|---|---|---|
| 1 | DAN | AND: Ini digunakan untuk menggabungkan lebih dari satu kondisi. Jika semua kondisi benar, AND bernilai benar. Jika salah satu kondisinya salah, DAN bernilai salah | Jika (1 = 1) Dan (0 = 1) Maka | palsu |
| 2 | OR | OR: Ini digunakan untuk menggabungkan lebih dari satu kondisi. Jika salah satu kondisi bernilai benar, OR mengembalikan nilai benar. Jika semuanya salah, OR mengembalikan salah | Jika (1 = 1) Atau (5 = 0) Maka | benar |
| 3 | JANGAN | BUKAN: Yang ini berfungsi seperti fungsi invers. Jika kondisinya benar, maka hasilnya salah, dan jika kondisinya salah, maka hasilnya benar. | Jika Tidak (0 = 0) Maka | palsu |
Ketiga uraian di atas lebih mudah diingat sebagai satu kesatuan kerangka masukan dan hasil.
Tabel Kebenaran untuk Logika VBA Operatorso
Tabel kebenaran mencantumkan setiap kombinasi input dan hasil yang dikembalikan oleh setiap operator. Dengan membacanya sekali, Anda tidak perlu lagi menebak-nebak kondisi apa pun yang akan Anda tulis selanjutnya.
| Kondisi A | Kondisi B | A dan B | A atau B | Tidak a |
|---|---|---|---|---|
| Benar | Benar | Benar | Benar | Salah |
| Benar | Salah | Salah | Benar | Salah |
| Salah | Benar | Salah | Benar | Benar |
| Salah | Salah | Salah | Salah | Benar |
Ada dua pola yang layak dihafal. DAN Menghasilkan nilai True hanya pada satu baris dari empat baris, sehingga mempersempit pilihan. OR Menghasilkan nilai False hanya pada satu baris, sehingga memperlebar satu baris. JANGAN hanya menerima satu kondisi, bukan dua, itulah sebabnya ia memiliki kolom tersendiri.
VBA Logis OperaContoh Sumber tors Code
Demi menyederhanakannya, kami akan membandingkan angka-angka yang dikodekan secara keras.
Tambahkan tombol ActiveX ke lembar dari “Opsi sisipkan.”
Atur properti seperti yang ditunjukkan pada gambar di bawah

Tabel berikut menunjukkan properti yang perlu Anda ubah dan nilai yang perlu Anda perbarui juga.
| S / N | kontrol | Milik | Nilai |
|---|---|---|---|
| 1 | Tombol Perintah1 | Nama | btnDAN |
| Keterangan | DAN Operauntuk (1 = 1) dan (0 = 0) | ||
| 2 | Tombol Perintah2 | Nama | btnOR |
| Keterangan | OR Operauntuk (1 = 1) Atau (5 = 0) | ||
| 3 | Tombol Perintah3 | Nama | tapi TIDAK |
| Keterangan | JANGAN Operaatau Tidak (0 = 0) |
Tambahkan kode berikut ke btnAND_Click
Private Sub btnAND_Click() If (1 = 1) And (0 = 0) Then MsgBox "AND evaluated to TRUE", vbOKOnly, "AND operator" Else MsgBox "AND evaluated to FALSE", vbOKOnly, "AND operator" End If End Sub
VBA Jika DAN Operator
- “Jika (1 = 1) Dan (0 = 0) Maka” Pernyataan if menggunakan operator logika AND untuk menggabungkan dua kondisi (1 = 1) dan (0 = 0). Jika kedua kondisi benar, kode di atas kata kunci 'Else' akan dieksekusi. Jika kedua kondisi tidak benar, kode di bawah kata kunci 'Else' akan dieksekusi.
Kedua kondisi tersebut benar di sini, sehingga mengklik tombol akan menampilkan "AND dievaluasi menjadi TRUE".
Tambahkan kode berikut ke btnOR_Click
Private Sub btnOR_Click() If (1 = 1) Or (5 = 0) Then MsgBox "OR evaluated to TRUE", vbOKOnly, "OR operator" Else MsgBox "OR evaluated to FALSE", vbOKOnly, "OR operator" End If End Sub
VBA Jika ATAU Operator
- “Jika (1 = 1) Atau (5 = 0) Maka” Pernyataan if menggunakan operator logika OR untuk menggabungkan dua kondisi (1 = 1) atau (5 = 0). Jika salah satu kondisi benar, kode di atas dengan kata kunci Else akan dieksekusi. Jika kedua kondisi salah, kode di bawah dengan kata kunci Else akan dieksekusi.
Kondisi pertama benar dan kondisi kedua salah, jadi OR tetap mengembalikan nilai true dan pesannya berbunyi “OR dievaluasi menjadi TRUE”.
Tambahkan kode berikut ke btnNOT_Click
Private Sub btnNOT_Click() If Not (0 = 0) Then MsgBox "NOT evaluated to TRUE", vbOKOnly, "NOT operator" Else MsgBox "NOT evaluated to FALSE", vbOKOnly, "NOT operator" End If End Sub
VBA Jika TIDAK Operator
- “Jika Tidak (0 = 0) Maka” Fungsi VBA If Not menggunakan operator logika NOT untuk meniadakan hasil dari kondisi pernyataan if. Kondisi dalam (0 = 0) bernilai benar, sehingga Not mengubahnya menjadi salah dan kode di bawah kata kunci 'Else' dieksekusi. Seandainya kondisi dalam bernilai salah, Not akan membuatnya menjadi benar dan kode di atas 'Else' akan dijalankan sebagai gantinya.
Ketiga tombol ini masing-masing menguji nilai tetap. Kondisi sebenarnya dibaca dari lembar kerja dan menggabungkan kedua keluarga operator.
Cara Menggabungkan Logika dan Perbandingan Operatorso
Makro produksi jarang menguji angka yang sudah ditentukan secara pasti. Makro tersebut membaca suatu nilai, membandingkannya, dan menggabungkan beberapa perbandingan tersebut menjadi satu keputusan. Makro di bawah ini hanya menyetujui pesanan jika produk tersebut ada, jumlahnya mencukupi, dan akun pelanggan tidak sedang ditangguhkan.
Sub ApproveOrder() Dim QtyOnHand As Long Dim QtyOrdered As Long Dim OnHold As Boolean QtyOnHand = Sheet1.Range("B2").Value QtyOrdered = Sheet1.Range("B3").Value OnHold = Sheet1.Range("B4").Value ' All three parts must hold for the order to pass If (QtyOrdered > 0) And (QtyOnHand >= QtyOrdered) And Not OnHold Then Sheet1.Range("B5").Value = "Approved" Else Sheet1.Range("B5").Value = "On hold" End If End Sub
Tiga aturan menjaga agar kondisi gabungan tetap mudah dibaca dan akurat.
- Berikan tanda kurung pada setiap perbandingan: VBA mengevaluasi operator perbandingan sebelum operator logika, tetapi tanda kurung membuat grup tersebutping Jelas dan mencegah kesalahan ketika kondisi tersebut berkembang kemudian.
- Perhatikan prioritas kata "dan" di atas kata "atau": A atau B dan C dibaca sebagai A atau (B dan C)Jika maksudmu (A atau B) dan C, tanda kurung wajib diisi.
- Jangan diterapkan pada tipe data Boolean, bukan pada angka: Tidak Sedang Ditahan Membaca secara alami. Hindari Bukan 5, karena Not melakukan operasi bitwise pada angka dan mengembalikan -6, bukan False.
⚠️ Peringatan: VBA tidak mengalami korsleting. Di Jika (ws Is Nothing) Atau (ws.Name = “Data”) MakaBagian kedua masih tetap berjalan meskipun bagian pertama benar, yang menimbulkan kesalahan runtime 91. Pisahkan guard tersebut ke dalam pernyataan If bersarang.
Xor, Eqv, dan Imp Operators di VBA
Operator AND, OR, dan NOT mencakup hampir semua kondisi sehari-hari, tetapi VBA menyediakan tiga operator logika lagi yang terkadang mengekspresikan suatu aturan jauh lebih jelas daripada serangkaian pernyataan If.
| Operator | Mengembalikan True ketika | Example | Keluaran |
|---|---|---|---|
| xor | Hanya satu dari dua kondisi tersebut yang benar, tidak pernah keduanya. | (1 = 1) Xor (5 = 0) | Benar |
| Persamaan | Kedua kondisi memiliki nilai yang sama, keduanya benar atau keduanya salah. | (1 = 1) Persamaan (2 = 2) | Benar |
| Imp | Kondisi pertama menyiratkan kondisi kedua; hanya True Imp False yang salah. | (1 = 1) Imp (5 = 0) | Salah |
Xor adalah yang paling praktis dari ketiganya. Fungsi ini cocok untuk aturan seperti "diskon berlaku untuk anggota staf atau anggota loyalitas, tetapi tidak untuk seseorang yang keduanya". Eqv dan Imp sebagian besar muncul dalam kode lama dan dalam latihan logika, jadi mengenalinya lebih penting daripada menuliskannya.
Unduh Excel yang berisi kode di atas
