VBA StrComp

Fungsi Excel VBA StrComp

VBA StrComp adalah fungsi terbina dalam yang digunakan untuk membandingkan sama ada kedua-dua nilai rentetan itu sama atau tidak. Namun, hasilnya tidak lalai BETUL atau SALAH seperti di lembaran kerja sebaliknya berbeza.

Sebelum kita melihat hasilnya, izinkan saya menunjukkan kepada anda sintaks fungsi StrComp terlebih dahulu.

  • String 1: String 1 adalah rentetan atau nilai pertama yang kita bandingkan.
  • String 2: String 2 adalah rentetan atau nilai kedua yang kita bandingkan dengan String 1 .
  • Bandingkan: Kami boleh memberikan tiga pilihan di sini.
      • 0 = Bandingkan Perduaan. Ini melakukan pengiraan peka huruf besar kecil. Contohnya "Hello" tidak sama dengan "HELLO" kerana kedua-dua kata itu berbeza. Ini adalah nilai lalai jika anda mengabaikan parameter ini. vbBinaryCompare
      • 1 = Bandingkan Teks. Pilihan ini melakukan pengiraan sensitif tanpa huruf. Contohnya "Hello" sama dengan acara "HELLO" walaupun kedua-dua kata itu berbeza. vbTeksBandingkan
      • 2 = Akses Bandingkan. Ini melakukan perbandingan pangkalan data.

Hasil Fungsi String Comparison (StrComp)

Seperti yang saya katakan ketika kita membandingkan dua nilai dalam lembaran kerja, kita mendapat hasilnya sama ada BENAR atau SALAH. Tetapi dengan fungsi perbandingan rentetan VBA tidak sama.

  • Kami mendapat sifar (0) apabila String 1 sama dengan String 2.
  • Kami mendapat satu (1) apabila nilai String 1 lebih besar daripada Nilai String 2 .
  • Kami mendapat tolak satu (-1) apabila nilai String 1 kurang daripada String 2
  • Kami mendapat NULL apabila nilai String 1 atau String 2 adalah NULL.

Contoh menggunakan FBA StrComp Function

Anda boleh memuat turun Templat VBA StrComp Excel ini di sini - Templat VBA StrComp Excel

Contoh # 1

Mari kita mulakan dengan contoh mudah. Sebagai contoh, kita akan membandingkan dua nilai iaitu "Excel VBA" & "Excel VBA".

Kod:

 Sub StrComp_Example1 () Dim FirstValue As String 'To Store String 1 value Dim SecondValue As String' To Store String 2 value Dim Result As String 'Untuk Menyimpan Hasil formula StrComp FirstValue = "Excel VBA"' Tentukan nilai String 1 SecondValue = "Excel VBA" 'Tetapkan nilai String 2 Hasil = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Terapkan fungsi StrComp MsgBox Result 'Tunjukkan hasilnya di kotak mesej End Sub 

Apabila saya menjalankan kod ini, kita akan mendapat Nol (0) sebagai hasilnya kerana kedua-dua nilai String 1 dan String 2 adalah sama.

Contoh # 2

Sekarang saya akan menukar kes dua perkataan.

Rentetan 1 = Excel Vba

Rentetan 2 = Excel VBA

Kod:

 Sub StrComp_Example2 () Dim FirstValue As String 'To Store String 1 value Dim SecondValue As String' To Store String 2 value Dim Result As String 'Untuk Menyimpan Keputusan formula StrComp FirstValue = "Excel Vba"' Tetapkan nilai String 1 SecondValue = "Excel VBA" 'Tetapkan nilai String 2 Hasil = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Terapkan fungsi StrComp MsgBox Result 'Tunjukkan hasilnya di kotak mesej End Sub 

Apabila saya menjalankan kod ini, kita akan mendapat 1 kerana kerana kita memberikan argumen Bandingkan sebagai " vbBinaryCompare", ia akan memeriksa watak-watak peka huruf besar kecil.

Sekarang saya akan menukar pilihan Bandingkan dari " vbBinaryCompare" menjadi " vbTextCompare"

Kod:

 Sub StrComp_Example3 () Dim FirstValue As String 'To Store String 1 value Dim SecondValue As String' To Store String 2 value Dim Result As String 'Untuk Menyimpan Hasil formula StrComp FirstValue = "Excel Vba"' Tentukan nilai String 1 SecondValue = "Excel VBA" 'Tetapkan nilai String 2 Hasil = StrComp (FirstValue, SecondValue, vbTextCompare)' Terapkan fungsi StrComp MsgBox Result 'Tunjukkan hasilnya di kotak mesej End Sub 

Dengan Perbandingan ini , kita akan mendapat sifar (0) kerana vbaTextCompare mengabaikan kata-kata sensitif huruf.

Contoh # 3

Kajian Kes VBA StrComp dengan keadaan IF

Andaikan anda mempunyai data seperti gambar di bawah.

Kita perlu membandingkan String 1 dengan String 2 dan mendapatkan Hasilnya sebagai "Tepat" jika keduanya sama, hasil yang lain harus "Tidak Tepat".

Kod di bawah akan berfungsi untuk kita.

Kod:

 Sub StrComp_Contoh4 () Dim Dim Hasil Sebagai String Dim I Sebagai Integer Untuk i = 2 Hingga 6 Hasil = StrComp (Sel (i, 1). Nilai, Sel (i, 2). Nilai) Jika Hasil = 0 Kemudian Sel (i, 3) ) .Nilai = "Tepat" Sel Lain (i, 3). Nilai = "Tidak Tepat" Tamat Jika Seterusnya i Tamatkan Sub 

Apabila saya menjalankan kod VBA di atas di Excel, kita akan mendapat hasil di bawah.

Sekiranya anda melihat sel C4 String 1 dan String 2 adalah sama tetapi wataknya peka huruf besar kecil, maka hasilnya adalah "Tidak Tepat". Untuk mengatasi masalah ini kita perlu membekalkan Bandingkan sebagai vbTextCompare.

Di bawah ini adalah kod yang diubah untuk mendapatkan hasilnya sebagai "Tepat" untuk sel C4.

Kod:

 Sub StrComp_Contoh4 () Dim Hasil Sebagai Rentetan Dim I Sebagai Integer Untuk i = 2 Hingga 6 Hasil = StrComp (Sel (i, 1). Nilai, Sel (i, 2). Nilai, vbTextCompare) Jika Hasil = 0 Kemudian Sel (i , 3) .Nilai = "Tepat" Sel Lain (i, 3). Nilai = "Tidak Tepat" Tamat Jika Seterusnya i Tamat Sub 

Kod ini akan mengembalikan hasil di bawah.