VBA Σύγκριση συμβολοσειρών - StrComp

Στο VBA, μπορείτε να συγκρίνετε δύο συμβολοσειρές χρησιμοποιώντας το StrComp λειτουργία. Σε αυτό το σεμινάριο, θα μάθετε πώς να χρησιμοποιείτε αυτήν τη λειτουργία με διαφορετικές μεθόδους σύγκρισης.

Εάν θέλετε να μάθετε πώς να χρησιμοποιείτε τον τελεστή τύπου VBA για να συγκρίνετε ασαφείς αντιστοιχίσεις, κάντε κλικ εδώ: VBA Like Operator.

Εάν θέλετε να μάθετε πώς να χρησιμοποιείτε τελεστές σύγκρισης, κάντε κλικ εδώ: Χειριστές σύγκρισης VBA - Δεν ισούται με & Περισσότερα

Χρήση της συνάρτησης StrComp για σύγκριση δύο συμβολοσειρών

ο StrComp συνάρτηση παίρνει δύο συμβολοσειρές και μέθοδο σύγκρισης ως ορίσματα. Υπάρχουν 3 μέθοδοι σύγκρισης:

  • vbBinaryCompare - συγκρίνει δύο συμβολοσειρές δυαδικές (διάκριση πεζών-κεφαλαίων)
  • vbTextCompare - συγκρίνει δύο συμβολοσειρές ως κείμενα (χωρίς διάκριση πεζών-κεφαλαίων).
  • vbDatabaseCompare - αυτή η μέθοδος είναι διαθέσιμη μόνο στη Microsoft Access και όχι στο VBA.

Από προεπιλογή, η συνάρτηση χρησιμοποιεί τη δυαδική μέθοδο. Εάν παραλείψουμε αυτό το όρισμα, η συνάρτηση θα έχει διάκριση πεζών-κεφαλαίων.

Η συνάρτηση επιστρέφει τα ακόλουθα αποτελέσματα:

  • 0 - εάν οι συμβολοσειρές είναι ίσες.
  • -1 - εάν η συμβολοσειρά 1 είναι μικρότερη από τη συμβολοσειρά 2,
  • 1 - εάν η συμβολοσειρά 1 είναι μεγαλύτερη από τη συμβολοσειρά 2,
  • Null - εάν μία από τις συμβολοσειρές είναι κενή.

Εδώ είναι το παράδειγμα του κώδικα:

123 Dim intResult As IntegerintResult = StrComp ("Υπολογιστής", "Υπολογιστής")

Σε αυτό το παράδειγμα, θέλουμε να ελέγξουμε αν συμβολοσειρές "Υπολογιστή" και "Υπολογιστή" είναι ίσες, χρησιμοποιώντας την προεπιλεγμένη μέθοδο σύγκρισης (δυαδική). Το αποτέλεσμα της συνάρτησης βρίσκεται στο intResult μεταβλητός. Όπως μπορείτε να δείτε στην εικόνα, και οι δύο συμβολοσειρές είναι ίσες, επομένως το intResult έχει τιμή 0.

Εικόνα 1. Χρήση της συνάρτησης StrComp με τη δυαδική μέθοδο στο VBA

Χρήση της συνάρτησης StrComp με δυαδική και κειμενική μέθοδο

Τώρα θα δείτε τη διαφορά μεταξύ της δυαδικής και της κειμενικής μεθόδου. Η δυαδική μέθοδος έχει έναν δυαδικό αριθμό για κάθε χαρακτήρα, οπότε τα κεφαλαία και τα πεζά είναι διαφορετικοί χαρακτήρες σε αυτήν τη μέθοδο. Από την άλλη πλευρά, η μέθοδος κειμένου θεωρεί τα "S" και "s" ως τα ίδια γράμματα. Εάν θέλετε να κάνετε τη συνάρτηση χωρίς διάκριση πεζών-κεφαλαίων, πρέπει να ορίσετε το τρίτο όρισμα σε vbBinaryCompareΤο Εδώ είναι ο κωδικός:

123456 Dim intResult1 Ως ακέραιοςDim intResult2 Ως ακέραιοςintResult1 = StrComp ("Υπολογιστής", "CompuTer")intResult2 = StrComp ("Υπολογιστής", "CompuTer", vbTextCompare)

Θέλουμε να συγκρίνουμε συμβολοσειρές "Υπολογιστή" και "Υπολογιστή", χρησιμοποιώντας και τις δύο μεθόδους.

Στη μεταβλητή intResult1, θα πάρουμε την τιμή με τη δυαδική μέθοδο, ενώ το intResult2 θα λάβει την τιμή με τη μέθοδο κειμένου. Μπορείτε να δείτε τις τιμές αυτών των δύο μεταβλητών:

Εικόνα 2. Χρήση της συνάρτησης StrComp με δυαδική και κειμενική μέθοδο

Η αξία του intResult1 είναι 1, που σημαίνει ότι δύο συμβολοσειρές είναι διαφορετικές για τη δυαδική μέθοδο. Για τη μέθοδο κειμένου, αυτές οι δύο συμβολοσειρές είναι ίσες, επομένως η τιμή του intResult2 είναι 0.

wave wave wave wave wave