Αποτροπή VBA Case Sensitive - Option Σύγκριση κειμένου

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

Κάνοντας την υπόθεση VBA αναίσθητη

Για να κάνετε το VBA χωρίς διάκριση πεζών-κεφαλαίων, πρέπει να βάλετε Επιλογή Σύγκριση κειμένου στην αρχή της ενότητας. Αρχικά, θα εξετάσουμε την τυπική συμπεριφορά VBA χωρίς αυτήν την επιλογή. Αυτός είναι ο κωδικός:

123456789 If Sheet1.Range ("A1"). Value = Sheet1.Range ("B1"). Value thenMsgBox "Δύο κείμενα είναι ίδια"ΑλλούMsgBox "Δύο κείμενα είναι διαφορετικά"Τέλος εαν

Στο παράδειγμα, θέλουμε να συγκρίνουμε τις συμβολοσειρές από το Α1 και το Β1. Εάν οι συμβολοσειρές είναι ίσες, θα επιστρέψουμε το πλαίσιο μηνυμάτων με το μήνυμα "Δύο κείμενα είναι ίδια". Εάν δεν είναι ίσες, θα επιστρέψουμε το μήνυμα «Δύο κείμενα είναι διαφορετικά.

Εικόνα 1. Συγκρίνοντας τις συμβολοσειρές χωρίς την επιλογή Σύγκριση κειμένου

Όπως μπορείτε να δείτε στην εικόνα, και τα δύο κείμενα είναι τα ίδια, αλλά το πρώτο είναι με κεφαλαία, ενώ το δεύτερο με πεζά. Εξαιτίας αυτού, η VBA τα θεωρεί διαφορετικά και επέστρεψε αυτό το μήνυμα.

1234567891011 Επιλογή Σύγκριση κειμένουPublic Sub CaseSensitiveTest ()If Sheet1.Range ("A1"). Value = Sheet1.Range ("B1"). Value thenMsgBox "Δύο κείμενα είναι ίδια"ΑλλούMsgBox "Δύο κείμενα είναι διαφορετικά"Τέλος εανΤέλος υπο

Τώρα θα προσθέσουμε Option Compare Text στην αρχή της ενότητας και θα δούμε τη διαφορά. Εδώ είναι ο κωδικός. Εκτελούμε τον κώδικα στο ίδιο παράδειγμα:

Εικόνα 2. Σύγκριση συμβολοσειρών με την επιλογή Σύγκριση κειμένου

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

Σύγκριση κειμένου

Εάν δεν δηλώσετε Επιλογή Σύγκριση κειμένου, μπορείτε να μετατρέψετε περιπτώσεις συμβολοσειρών για να κάνετε συγκρίσεις χωρίς διάκριση πεζών-κεφαλαίων. Αυτό είναι δυνατό μέσω της λειτουργίας UCase, LCase ή StrConv. Μπορείτε να μάθετε περισσότερα για αυτό εδώ: Λειτουργίες VBA Upper, Lower και Proper Case - Case

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave