Perbandingan VBA Operator: Tidak setara, Less dari atau Sama dengan
โก Ringkasan Cerdas
Perbandingan VBA OperaOperator menguji satu nilai terhadap nilai lain dan mengembalikan True atau False. Halaman ini mendefinisikan enam operator, menunjukkannya di dalam pernyataan If, menjelaskan cara membandingkan teks dan tanggal, dan mencantumkan kesalahan yang menghasilkan hasil yang salah.

Perbandingan VBA Operatorso
Ini adalah operator yang digunakan untuk membandingkan nilai. Operator perbandingan meliputi sama dengan, kurang dari, lebih besar dari, dan tidak sama dengan.
Operator perbandingan digunakan untuk membandingkan nilai untuk tujuan validasi. Misalnya, Anda sedang mengembangkan...ping Aplikasi point of sale sederhana. Dalam aplikasi ini, Anda ingin memvalidasi nilai yang dimasukkan sebelum diposting. Dalam kasus seperti ini, Anda dapat menggunakan operator perbandingan. Operator ini akan memeriksa angka negatif atau memastikan bahwa jumlah yang dibayarkan tidak melebihi jumlah yang ditagihkan. Operator perbandingan sangat berguna dalam situasi seperti ini.
Setiap perbandingan akan mengembalikan salah satu dari dua nilai, Benar atau Salah, dan tidak pernah berupa angka. Hasil itulah yang menjadi dasar tindakan dalam pernyataan If.
Tabel berikut mencantumkan operator perbandingan yang didefinisikan dalam VBA.
| Operator | Deskripsi |
|---|---|
| = | Equal: memeriksa apakah dua nilai sama. Ini juga digunakan sebagai operator penugasan |
| < | Less daripada: memeriksa apakah nilai di sebelah kiri lebih kecil daripada nilai di sebelah kanan. |
| > | Lebih besar dari: memeriksa apakah nilai di sebelah kiri lebih besar dari nilai di sebelah kanan. |
| <> | Tidak sama dengan: memeriksa apakah dua nilai berbeda satu sama lain |
| <= | Less daripada atau sama dengan: memeriksa apakah nilai di sebelah kiri lebih kecil atau sama dengan nilai di sebelah kanan. |
| >= | Lebih besar dari atau sama dengan: memeriksa apakah nilai di sebelah kiri lebih besar dari atau sama dengan nilai di sebelah kanan. |
Dengan melihat setiap operator diterapkan pada dua variabel, hasil yang dikembalikan akan lebih mudah diprediksi.
Perbandingan VBA Operator dengan Contoh
Tabel berikut menunjukkan Perbandingan Excel VBA Operator dengan contoh dan keluaran.
| S / N | Operator | Example | Keluaran |
|---|---|---|---|
| 1 | = | Jika x = z Maka | Mengembalikan nilai benar jika sama, jika tidak maka akan mengembalikan nilai salah |
| 2 | < | Jika x < z Maka | Mengembalikan nilai benar jika x lebih kecil dari z, jika tidak maka akan menghasilkan nilai salah |
| 3 | > | Jika x > z Maka | Mengembalikan nilai benar jika x lebih besar dari z, jika tidak maka akan menghasilkan nilai salah |
| 4 | <> | Jika x <> z Maka | Mengembalikan nilai benar jika tidak sama, jika tidak maka akan mengembalikan nilai salah |
| 5 | <= | Jika x <= z Maka | Mengembalikan nilai benar jika x kurang dari atau sama dengan z, jika tidak maka akan menghasilkan nilai salah |
| 6 | >= | Jika x >= z Maka | Mengembalikan nilai benar jika x lebih besar dari atau sama dengan z, jika tidak maka akan menghasilkan nilai salah |
Contoh kode sumber
Perbandingan yang Setara Operator
If 2 = 1 Then MsgBox "True", vbOKOnly, "Equal Operator" Else MsgBox "False", vbOKOnly, "Equal Operator" End If
SINI,
- โJika 2 = 1 Makaโฆ Lainโฆ Berakhir Jikaโ menggunakan pernyataan if untuk mengevaluasi kondisi โ2 = 1โ
- โPesanBoxรข โฌ | รข โฌ Adalah fungsi bawaan yang menampilkan kotak pesan.
- Parameter pertama โBenarโ atau โSalahโ adalah yang akan ditampilkan di kotak pesan. Dalam contoh kita, 2 tidak sama dengan 1, oleh karena itu, akan ditampilkan โsalahโ di kotak pesan.
- Parameter kedua โvbOKOnlyโ adalah tombol yang ditampilkan di kotak pesan
- Parameter ketiga โSama Operaโtorโ adalah judul kotak pesan.
Menjalankan kode di atas memberikan hasil berikut
Tes tunggal itu adalah bentuk yang paling sederhana. Makro sebenarnya menggabungkan perbandingan dan bercabang di antara beberapa hasil.
Cara Menggunakan Perbandingan Operators dalam Pernyataan If
Operator perbandingan jarang berguna sendirian. Hasil Benar atau Salahnya dimasukkan ke dalam struktur keputusan, dan pernyataan If adalah yang paling sering Anda gunakan. Contoh di bawah ini memberi nilai pada skor yang disimpan di sel A1 dan menulis hasilnya di sebelahnya.
Sub GradeScore() Dim Score As Long Score = Sheet1.Range("A1").Value If Score >= 90 Then Sheet1.Range("B1").Value = "Distinction" ElseIf Score >= 50 Then Sheet1.Range("B1").Value = "Pass" ElseIf Score < 0 Then MsgBox "A score cannot be negative", vbCritical, "Invalid Entry" Else Sheet1.Range("B1").Value = "Fail" End If End Sub
Makro tersebut membaca skor sekali, kemudian mengujinya terhadap tiga kondisi secara berurutan. Empat poin menjelaskan mengapa makro tersebut berperilaku seperti itu.
- Urutan penting: VBA berhenti pada cabang pertama yang mengembalikan nilai True. Penempatan Skor >= 50 sebelum Skor >= 90 akan menganggap setiap nilai tinggi sebagai lulus.
- "Else" adalah istilah umum: Nilai apa pun yang gagal dalam setiap pengujian sebelumnya akan diteruskan ke Else, sehingga tidak ada input yang tidak ditangani.
- Tidak ada penggabungan: VBA tidak dapat membaca 0 <= Skor <= 100. Menulis Jika Skor >= 0 Dan Skor <= 100 Maka menggunakan operator logis sebagai gantinya.
- Tes yang sama, struktur yang berbeda: Kondisi yang identik menggerakkan Do While dan Select Case, sehingga operator tersebut dapat diterapkan ke setiap perulangan yang Anda tulis.
๐ก Kiat: Deklarasikan variabel dengan tipe numerik, seperti yang ditunjukkan pada Skor Redup SelamaJika nilainya tetap berupa Variant yang berisi teks, โ9โ > โ10โ Mengembalikan nilai True karena perbandingan dilakukan karakter demi karakter.
Membandingkan Teks dan Tanggal di VBA
Numbers Perbandingan dilakukan persis seperti yang disarankan oleh aritmatika, tetapi teks dan tanggal mengikuti aturan tersendiri, dan keduanya mengejutkan para pemula.
String dibandingkan satu karakter per satu menggunakan posisi pengurutannya, jadi โAppleโ < โBananaโ mengembalikan True. Secara default, perbandingan peka terhadap huruf besar dan kecil, yang berarti โguru99โ = โGuru99โ mengembalikan False. Penempatan Opsi Bandingkan Teks Di bagian atas modul, ini membuat setiap perbandingan string dalam modul tersebut mengabaikan perbedaan huruf besar dan kecil. Untuk pengujian tunggal tanpa mengubah modul, gunakan StrComp dengan argumen vbTextCompare.
Tanggal disimpan sebagai nomor seri yang dihitung mulai dari 30 Desember 1899, sehingga dapat dibandingkan langsung dengan enam operator yang sama. Penulisan Jika DueDate < Date Maka Fungsi ini mendeteksi item yang jatuh tempo dengan benar, karena Date mengembalikan tanggal sistem saat ini sebagai jenis nomor seri yang sama. Satu-satunya jebakan adalah tanggal yang disimpan sebagai teks: โ01/02/2026โ yang dibaca dari file yang diimpor adalah string, bukan tanggal, dan dibandingkan secara alfabetis. Konversikan dengan CDate sebelum mengujinya.
Mengetahui aturan untuk setiap tipe akan menghilangkan sebagian besar kejutan, tetapi beberapa kesalahan masih dapat menjebak pengembang berpengalaman.
Kesalahan Umum Saat Membandingkan Nilai di VBA
Lima masalah di bawah ini mencakup sebagian besar perbandingan yang menghasilkan hasil yang tidak terduga.
- Penugasan disalahartikan sebagai perbandingan: Di luar suatu kondisi, x = 5 menyimpan 5 di x. Di dalam If, simbol yang sama menguji kesamaan. VBA tidak memiliki operator == terpisah, jadi bacalah konteksnya dengan cermat.
- pengujian Double nilai untuk kesamaan yang tepat: Presisi tersimpan berarti 0.1 + 0.2 = 0.3 mengembalikan False. Bandingkan selisih yang dibulatkan sebagai gantinya, misalnya Jika Abs(a โ b) < 0.000001 Maka.
- Membandingkan apa pun dengan Null: Null tidak sama dengan apa pun, bahkan dengan Null lainnya. Uji dengan IsNull, bukan dengan = Null.
- Membandingkan teks dengan angka: Sel yang berisi teks โ100โ tidak sama dengan angka 100. Konversikan dengan CLng atau CDbl sebelum pengujian.
- Membaca .Text alih-alih .Value: Properti .Text mengembalikan apa yang ditampilkan, yang dipotong oleh lebar kolom dan pemformatan. Selalu bandingkan dengan .Value.
Unduh file Excel di atas. Code

