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.

  • 🔗 Tujuan: Operator logika mengevaluasi lebih dari satu kondisi di dalam satu pernyataan If.
  • DAN Operauntuk: Mengembalikan nilai True hanya jika setiap kondisi yang digabungkan bernilai True.
  • OR Operauntuk: Mengembalikan nilai True jika setidaknya salah satu kondisi bernilai True.
  • 🔄 JANGAN Operauntuk: Membalikkan hasil, mengubah Benar menjadi Salah dan Salah menjadi Benar.
  • 📊 Meja kebenaran: Sebuah grid referensi tunggal menunjukkan hasil dari setiap operator untuk setiap kombinasi input.
  • 🧮 ekstra Operatorsi: Xor, Eqv, dan Imp menangani kondisi eksklusif, ekuivalen, dan tersirat.
  • ⚠️ Tidak ada korsleting: VBA mengevaluasi setiap bagian dari suatu kondisi, jadi pengujian pengaman harus ditempatkan di dalam pernyataan If bersarang.

VBA Logis Operators: AND, OR, NOT di Excel VBA

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

VBA Logis Operatorso
VBA Logis Operatorso

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

Pertanyaan Umum Demo Slot

Tidak ada batasan praktis, tetapi keterbacaan akan menurun dengan cepat setelah tiga atau empat. Pindahkan kondisi yang panjang ke dalam variabel Boolean dengan nama yang deskriptif, lalu uji variabel tersebut dalam pernyataan If sebagai gantinya.

Jika diterapkan pada angka, operator NOT melakukan inversi bitwise, bukan inversi logis. Terapkan hanya pada perbandingan atau variabel Boolean, seperti Not (Qty > 0), sehingga hasilnya adalah True atau False.

Logikanya sama, tetapi sintaksnya berbeda. Rumus lembar kerja memanggilnya sebagai fungsi, AND(A1>0, B1>0). VBA menempatkannya di antara kondisi, seperti If A1 > 0 And B1 > 0 Then.

Ya. Tempelkan kondisi tersebut dan asisten AI akan menuliskannya kembali dengan tanda kurung yang lebih jelas atau membaginya menjadi variabel Boolean bernama. Verifikasi penulisan ulang tersebut terhadap tabel kebenaran, karena penyederhanaan yang salah akan mengubah perilaku secara diam-diam.

Ya. Berikan ekspresi yang Anda inginkan, dan asisten AI akan mencantumkan setiap kombinasi input beserta hasilnya, yang dengan cepat mengungkap cabang yang tidak mungkin dicapai atau tanda kurung yang ditempatkan di posisi yang salah.

Ringkaslah postingan ini dengan: