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.

  • ๏ธ Tujuan: Operator perbandingan memvalidasi data dengan menguji suatu kondisi yang dievaluasi menjadi Benar atau Salah.
  • ๐Ÿ”ข Enam Operatorsi: Sama dengan, kurang dari, lebih besar dari, tidak sama dengan, kurang dari atau sama dengan, dan lebih besar dari atau sama dengan.
  • ๐Ÿ” Peran ganda: Tanda sama dengan membandingkan kondisi di dalam dan menetapkan nilai di luar kondisi tersebut.
  • ๐Ÿงช Pernyataan If: Setiap perbandingan ditempatkan di dalam If, ElseIf, atau Do While untuk mengontrol kode mana yang dijalankan.
  • ๐Ÿ”ค Teks dan Tanggal: String dibandingkan karakter demi karakter dan tanggal dibandingkan sebagai nomor seri.
  • โš ๏ธ Perangkap Presisi: Dua Double Nilai yang terlihat identik dapat gagal dalam uji kesamaan, jadi bandingkan selisih yang dibulatkan.

Perbandingan VBA Operatorso

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

Sama Operator

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

Pertanyaan Umum Demo Slot

Tidak. VBA mengevaluasi perbandingan pertama menjadi Benar atau Salah, kemudian membandingkan hasil tersebut dengan 10, yang memberikan jawaban yang menyesatkan. Tulis kedua pengujian tersebut secara terpisah dan gabungkan dengan operator AND.

Fungsi `like` membandingkan string dengan pola, bukan nilai pasti. Karakter wildcard meliputi tanda bintang (*) untuk karakter apa pun dan tanda tanya (*) untuk satu karakter, jadi โ€œGuru99โ€ Seperti โ€œGuru*โ€ mengembalikan True.

Gunakan operator Is, seperti pada If ws Is Nothing Then. Tanda sama dengan membandingkan nilai, sedangkan Is memeriksa apakah dua variabel objek menunjuk ke objek yang sama, yang merupakan satu-satunya pengujian yang valid untuk objek.

Ya. Jelaskan aturannya dengan kata-kata sederhana, misalnya tandai setiap pesanan di atas 500 yang dilakukan sebelum hari ini, dan asisten AI akan mengembalikan kondisi If yang sesuai. Periksa nilai batas sebelum mempercayainya.

Ya. Tempelkan blok If dan asisten AI. tracCabang mana yang menangkap setiap nilai, kemudian menunjukkan ElseIf yang tidak dapat dijangkau atau perbandingan antara teks dan angka. Konfirmasikan perbaikan dengan langkah demi langkah.ping melalui kode tersebut.

Ringkaslah postingan ini dengan: