Σύγκριση συμβολοσειρών VBA - Πώς να συγκρίνετε τιμές δύο χορδών;

Πίνακας περιεχομένων

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

Για να συγκρίνουμε δύο χορδές στο VBA έχουμε μια ενσωματωμένη συνάρτηση, δηλαδή " StrComp ". Αυτό μπορούμε να το διαβάσουμε ως " Σύγκριση συμβολοσειρών ", αυτή η λειτουργία είναι διαθέσιμη μόνο με το VBA και δεν είναι διαθέσιμη ως λειτουργία φύλλου εργασίας. Συγκρίνει οποιεσδήποτε δύο χορδές και επιστρέφει τα αποτελέσματα ως "Μηδέν (0)" αν και οι δύο χορδές ταιριάζουν και αν και οι δύο παρεχόμενες χορδές δεν ταιριάζουν τότε θα έχουμε το "Ένα (1)" ως αποτέλεσμα.

Στο VBA ή στο Excel, αντιμετωπίζουμε πολλά διαφορετικά σενάρια. Ένα τέτοιο σενάριο είναι «σύγκριση δύο τιμών συμβολοσειράς». Σε ένα κανονικό φύλλο εργασίας, μπορούμε να κάνουμε αυτούς τους πολλαπλούς τρόπους, αλλά στο VBA, πώς το κάνετε αυτό;

Παρακάτω είναι η σύνταξη της συνάρτησης "StrComp".

Πρώτον, δύο επιχειρήματα είναι αρκετά απλά,

  • για το String 1, πρέπει να παρέχουμε ποια είναι η πρώτη τιμή που συγκρίνουμε και
  • για το String 2, πρέπει να παρέχουμε τη δεύτερη τιμή που συγκρίνουμε.
  • (Σύγκριση) αυτό είναι το προαιρετικό όρισμα της συνάρτησης StrComp. Αυτό είναι χρήσιμο όταν θέλουμε να συγκρίνουμε τη σύγκριση με κεφαλαία. Για παράδειγμα, σε αυτό το επιχείρημα, το "Excel" δεν ισούται με το "EXCEL" επειδή και οι δύο αυτές λέξεις είναι πεζά.

Μπορούμε να παρέχουμε τρεις τιμές εδώ.

  • Το μηδέν (0) για τη « Δυαδική σύγκριση », δηλαδή το «Excel», δεν ισούται με το «EXCEL». Για σύγκριση με κεφαλαία, μπορούμε να παρέχουμε 0.
  • Ένα (1) για " Σύγκριση κειμένου ", δηλαδή "Excel" είναι ίσο με το "EXCEL". Αυτή είναι μια σύγκριση που δεν είναι πεζών-κεφαλαίων.
  • Δύο (2) μόνο για σύγκριση βάσης δεδομένων.

Τα αποτελέσματα της συνάρτησης "StrComp" δεν είναι προεπιλεγμένα TRUE ή FALSE αλλά διαφέρουν. Ακολουθούν τα διαφορετικά αποτελέσματα της συνάρτησης "StrComp".

  • Θα λάβουμε το "0" ως αποτέλεσμα εάν οι παρεχόμενες χορδές ταιριάζουν.
  • Θα λάβουμε "1" εάν οι παρεχόμενες συμβολοσειρές δεν ταιριάζουν, και σε περίπτωση αριθμητικής αντιστοίχισης, θα λάβουμε 1 εάν η συμβολοσειρά 1 είναι μεγαλύτερη από τη συμβολοσειρά 2.
  • Θα λάβουμε "-1" εάν ο αριθμός της συμβολοσειράς 1 είναι μικρότερος από τον αριθμό της συμβολοσειράς 2.

Πώς να εκτελέσετε τη σύγκριση χορδών στο VBA;

Παράδειγμα # 1

Θα ταιριάξουμε με το " Bangalore " με το string " BANGALORE ".

Αρχικά, δηλώστε δύο μεταβλητές VBA ως συμβολοσειρά για να αποθηκεύσετε δύο τιμές συμβολοσειράς.

Κώδικας:

Υπο String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String End Sub

Για αυτές τις δύο μεταβλητές, αποθηκεύστε δύο τιμές συμβολοσειράς.

Κώδικας:

Υπο String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" End Sub

Τώρα δηλώστε μια ακόμη μεταβλητή για να αποθηκεύσετε το αποτέλεσμα της συνάρτησης " StrComp ".

Κώδικας:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult as String End Sub

Για αυτήν τη μεταβλητή, ανοίξτε τη συνάρτηση "StrComp".

Κώδικας:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (End Sub

Για "String1" και "String2" έχουμε ήδη εκχωρήσει τιμές μέσω μεταβλητών, οπότε εισαγάγετε ονόματα μεταβλητών, αντίστοιχα.

Κώδικας:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, End Sub

Το τελευταίο μέρος της συνάρτησης είναι "Σύγκριση" για αυτήν την επιλογή "vbTextCompare."

Κώδικας:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) End Sub

Τώρα δείξτε τη μεταβλητή "Τελικό αποτέλεσμα" στο πλαίσιο μηνυμάτων στο VBA.

Κώδικας:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) MsgBox FinalResult End Sub

Εντάξει, ας τρέξουμε τον κώδικα και να δούμε το αποτέλεσμα.

Παραγωγή:

Δεδομένου ότι και οι δύο χορδές "Bangalore" και "BANGALORE" είναι ίδιες, έχουμε το αποτέλεσμα ως 0, δηλαδή, ταίριασμα. Και οι δύο τιμές είναι διάκριση πεζών-κεφαλαίων δεδομένου ότι έχουμε παράσχει το όρισμα ως "vbTextCompare" έχει αγνοήσει την αντιστοίχιση με κεφαλαία και μόνο τις τιμές, οπότε και οι δύο τιμές είναι ίδιες και το αποτέλεσμα είναι 0, δηλαδή, ΑΛΗΘΕΙΑ.

Κώδικας:

Sub String_Comparison_Example1 () Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp (Value1, Value2, vbTextCompare) MsgBox FinalResult End Sub

Παράδειγμα # 2

For the same code, we will change the compare method from “vbTextCompare” to “vbBinaryCompare.”

Code:

Sub String_Comparison_Example2() Dim Value1 As String Dim Value2 As String Value1 = "Bangalore" Value2 = "BANGALORE" Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Now run the code and see the result.

Output:

Even though both the strings are the same, we got the result as 1, i.e., Not Matching because we have applied the compare method as “vbBinaryCompare,” which compares two values as case sensitive.

Example #3

Now we will see how to compare numerical values. For the same code, we will assign different values.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 500 Value2 = 500 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Both the values are 500, and we will get 0 as a result because both the values are matched.

Output:

Now I will change the Value1 number from 500 to 100.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 1000 Value2 = 500 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Run the code and see the result.

Output:

We know Value1 & Value2 aren’t the same, but the result is -1 instead of 1 because for numerical comparison when the String 1 value is greater than String 2, we will get this -1.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 1000 Value2 = 500 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Now I will reverse the values.

Code:

Sub String_Comparison_Example3() Dim Value1 As String Dim Value2 As String Value1 = 500 Value2 = 1000 Dim FinalResult As String FinalResult = StrComp(Value1, Value2, vbBinaryCompare) MsgBox FinalResult End Sub

Run the code and see the result.

Output:

This is not special. If not match, we will get 1 only.

Things to Remember here

  • (Compare) argument of “StrComp” is optional, but in case of case sensitive match, we can utilize this, and the option is “vbBinaryCompare.”
  • The result of numerical values is slightly different in case String 1 is greater than string 2, and the result will be -1.
  • Results are 0 if matched and 1 if not matched.

Recommended Articles

Αυτός ήταν ένας οδηγός για τη σύγκριση συμβολοσειρών VBA. Εδώ συζητάμε πώς να συγκρίνουμε δύο τιμές συμβολοσειράς χρησιμοποιώντας τη συνάρτηση StrComp στο excel VBA μαζί με παραδείγματα και να κατεβάζουμε ένα πρότυπο excel. Μπορείτε επίσης να ρίξετε μια ματιά σε άλλα άρθρα που σχετίζονται με το Excel VBA -

  • Οδηγός για τις λειτουργίες συμβολοσειράς VBA
  • VBA Split String in Array
  • Μέθοδοι SubString VBA
  • Κείμενο VBA

ενδιαφέροντα άρθρα...