Πίνακας περιεχομένων
Εφαρμογή του VBA είναι η πιο αποτελεσματική, γρήγορη και ασφαλής μέθοδος για να εκτελέσετε οποιαδήποτε λειτουργία στο Excel. Σε αυτό το άρθρο, θα σας δείξουμε πώς να ελέγξετε αν μια συμβολοσειρά περιέχει μια άλλη συμβολοσειρά στο Excel χρησιμοποιώντας το VBA .
Λήψη προτύπου πρακτικής
Μπορείτε να κατεβάσετε το δωρεάν υπόδειγμα Excel από εδώ.
VBA για να ελέγξετε αν η συμβολοσειρά περιέχει Value.xlsm
6 Μέθοδοι στην VBA για να ελέγξετε εάν η συμβολοσειρά περιέχει μια άλλη συμβολοσειρά στο Excel
Παρακάτω σε αυτή την ενότητα, θα βρείτε 6 αποτελεσματικές μεθόδους για το πώς να εφαρμόσετε VBA για να ελέγξετε αν ένα αλφαριθμητικό περιέχει ένα άλλο αλφαριθμητικό ή όχι.
1. VBA για να ελέγξετε αν η συμβολοσειρά περιέχει υποσέλιδο
Ακολουθεί ένα παράδειγμα η συνάρτηση InStr για να βρείτε αν μια συμβολοσειρά περιέχει μια υποσυμβολοσειρά στο Excel.
Βήματα:
- Τύπος Alt + F11 στο πληκτρολόγιό σας ή πηγαίνετε στην καρτέλα Προγραμματιστής -> Visual Basic για να ανοίξετε Visual Basic Editor .
- Στο αναδυόμενο παράθυρο κώδικα, από τη γραμμή μενού, κάντε κλικ στην επιλογή Εισαγωγή -> Ενότητα .
- Στο παράθυρο κώδικα, αντιγράψτε τον ακόλουθο κώδικα και επικολλήστε τον.
Public Sub ContainSub() If InStr("Movie: Iron Man, Batman, Superman, Spiderman, Thor", "Hulk")> 0 Then MsgBox "Movie found" Else MsgBox "Movie not found" End If End Sub
Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.
- Εκτέλεση η μακροεντολή.
Εάν το η συμβολοσειρά περιέχει την υποσέλιδο τότε θα λάβετε μια αντιστοιχία που βρέθηκε, διαφορετικά, θα επιστρέψει καμία αντιστοιχία που βρέθηκε.
Στο παράδειγμά μας, θέλαμε να μάθουμε αν η πρωταρχική συμβολοσειρά " Ταινία: Iron Man, Batman, Superman, Spiderman, Thor " περιέχει τη λέξη " Hulk " ή όχι. Καθώς δεν το κάνει, παίρνουμε ένα Η ταινία δεν βρέθηκε αποτέλεσμα.
2. VBA για να ελέγξετε αν η συμβολοσειρά περιέχει αριθμό
Μπορείτε να αναζητήσετε αν οι συμβολοσειρές περιέχουν αριθμούς ή όχι χρησιμοποιώντας την εντολή VBA κωδικός.
Κοιτάξτε το ακόλουθο παράδειγμα όπου θα βρούμε ποιες συμβολοσειρές περιέχουν αριθμούς με τα ονόματα των ταινιών.
Βήματα για να ελέγξετε αν οι συμβολοσειρές περιέχουν αριθμούς με VBA δίνονται παρακάτω.
Βήματα:
- Με τον ίδιο τρόπο όπως και πριν, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
- Στο παράθυρο κώδικα, αντιγράψτε τον ακόλουθο κώδικα και επικολλήστε τον.
Function SearchNumbers(oRng As Range) As Boolean Dim bSearchNumbers As Boolean, i As Long bSearchNumbers = False For i = 1 To Len(oRng.Text) If IsNumeric(Mid(oRng.Text, i, 1)) Then bSearchNumbers = True Exit For End If Next SearchNumbers = bSearchNumbers End Function
- Δεν πρόκειται για υποδιαδικασία για την VBA πρόγραμμα για να τρέξει, αυτό δημιουργεί ένα Λειτουργία που ορίζεται από τον χρήστη (UDF), το οποίο θα καλέσουμε στο φύλλο εργασίας μας για να εκτελέσουμε την εργασία. Έτσι, αφού γράψουμε τον κώδικα, αντί να κάνουμε κλικ στο κουμπί Εκτέλεση κάντε κλικ στο κουμπί Αποθήκευση από τη γραμμή μενού για να αποθηκεύσετε το αρχείο μακροεντολών.
- Επιστρέψτε τώρα στο φύλλο εργασίας που σας ενδιαφέρει και γράψτε τη συνάρτηση που μόλις δημιουργήσατε στο πεδίο VBA κωδικός ( SearchNumber , στην πρώτη γραμμή του κώδικα) και μέσα στις αγκύλες της συνάρτησης, εισαγάγετε τον αριθμό αναφοράς κελιού του κελιού της συμβολοσειράς που έχει αρχικούς αριθμούς (π.χ. Κύτταρο B5 ).
- Τύπος Εισάγετε το .
Θα λάβετε μια boolean τιμή ( ΑΛΗΘΙΝΟ ή Ψευδές ), αν η συμβολοσειρά στο κελί περιέχει αριθμούς, τότε θα λάβετε ΑΛΗΘΙΝΟ , διαφορετικά FALSE .
- Σύρετε το κελί προς τα κάτω κατά Χειρολαβή πλήρωσης για να εφαρμόσετε τον τύπο στα υπόλοιπα κελιά για να ελέγξετε ποια συμβολοσειρά περιέχει αριθμούς και ποια όχι.
3. VBA για την εξαγωγή αριθμών από συμβολοσειρά
Στην παραπάνω ενότητα, μάθαμε πώς να ελέγχουμε αν η συμβολοσειρά περιέχει αριθμούς ή όχι. Και σε αυτή την ενότητα, θα μάθουμε πώς να εξάγουμε αυτούς τους αριθμούς και να τους τοποθετούμε σε ένα άλλο κελί με το παράδειγμα που δίνεται παρακάτω.
Βήματα για να ελέγξετε αν οι συμβολοσειρές περιέχουν αριθμούς και να τους εξάγετε με VBA δίνονται παρακάτω.
Βήματα:
- Ανοίξτε το Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a UserForm αυτή τη φορά από την καρτέλα Εισαγωγή στο παράθυρο κώδικα.
- Από το εμφανίστηκε Εργαλειοθήκη , drag and drop CommandButton στο UserForm .
- Διπλό κλικ στο κουμπί, αντιγράψτε τον ακόλουθο κώδικα και επικολλήστε τον.
Private Sub CommandButton1_Click() Worksheets("Number").Range("C2:C15").ClearContents checkNumber (Worksheets("Number").Range("B2:B15")) End Sub Sub checkNumber(objRange As Range) Dim myAccessary As Variant Dim i As Long Dim iRow As Long iRow = 2 For Each myAccessary In objRange For i = 1 To Len(myAccessary.Value) If IsNumeric(Mid(myAccessary.Value, i,1))) Then If Trim(objRange.Cells(objRange.Row - 1, 2))) "" Then objRange.Cells(iRow - 1, 2) = _ objRange.Cells(iRow - 1, 2) & Mid(myAccessary.Text, i, 1) Else objRange.Cells(iRow - 1, 2) = Mid(myAccessary.Text, i, 1) End If End If Next i iRow = iRow + 1Next myAccessary End Sub
- Εκτέλεση τον κωδικό και θα σας μεταφέρει στο φύλλο εργασίας που σας ενδιαφέρει.
- Κάντε κλικ στο κουμπί εντολών και θα λάβετε τον αριθμό που εξάγεται από τις συμβολοσειρές.
4. VBA για να ελέγξετε αν η συμβολοσειρά περιέχει συγκεκριμένο γράμμα
Αυτή η μέθοδος είναι σχεδόν παρόμοια με τη μέθοδο ελέγχου υποσυνόλων σε μια συμβολοσειρά.
Παρακάτω είναι το InStr για να βρείτε αν μια συμβολοσειρά περιέχει ένα συγκεκριμένο γράμμα στο Excel.
Βήματα:
- Με τον ίδιο τρόπο όπως και πριν, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
- Στο παράθυρο κώδικα, αντιγράψτε τον ακόλουθο κώδικα και επικολλήστε τον.
Public Sub ContainChar() If InStr("Movie: Iron Man, Batman, Superman, Spiderman, Thor", "Z")> 0 Then MsgBox "Βρέθηκε γράμμα" Else MsgBox "Δεν βρέθηκε γράμμα" End If End Sub
Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.
- Εκτέλεση το πρόγραμμα. Εάν το η συμβολοσειρά περιέχει το γράμμα τότε θα λάβετε μια αντιστοιχία που βρέθηκε, διαφορετικά, θα επιστρέψει καμία αντιστοιχία που βρέθηκε.
Στο παράδειγμά μας, θέλαμε να μάθουμε αν η πρωταρχική συμβολοσειρά " Ταινία: Iron Man, Batman, Superman, Spiderman, Thor " περιέχει το γράμμα " Z " ή όχι. Καθώς δεν το κάνει, παίρνουμε ένα Η επιστολή δεν βρέθηκε αποτέλεσμα.
5. VBA για να ελέγξετε αν μια σειρά συμβολοσειρών περιέχει μια άλλη συμβολοσειρά
Μάθαμε πώς να ελέγχουμε αν μια δεδομένη συμβολοσειρά περιέχει μια άλλη συμβολοσειρά ή όχι. Αλλά σε αυτή την ενότητα, θα μάθουμε πώς να ελέγχουμε αν μια σειρά συμβολοσειρών περιέχει υποσυμβολοσειρά ή όχι με το ακόλουθο σύνολο δεδομένων ως παράδειγμα.
Βήματα:
- Ανοίξτε το Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
- Στο παράθυρο κώδικα, αντιγράψτε τον ακόλουθο κώδικα και επικολλήστε τον.
Public Sub ContainsSub() If InStr(ActiveSheet.Select, "Hulk")> 0 Then MsgBox "Βρέθηκε ταινία" Else MsgBox "Δεν βρέθηκε ταινία" End If End Sub
Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.
- Εκτέλεση τον κώδικα.
Εάν το εύρος των η συμβολοσειρά περιέχει την υποσέλιδο τότε θα λάβετε μια αντιστοιχία που βρέθηκε, διαφορετικά, θα επιστρέψει καμία αντιστοιχία που βρέθηκε.
6. VBA για την εξαγωγή συμβολοσειρών από συμβολοσειρά
Σε αυτή την ενότητα, θα δούμε πώς να ελέγξουμε αν οι συμβολοσειρές περιέχουν ορισμένες υποσυμβολοσειρές και να τις εξάγουμε σε ένα άλλο κελί.
Θα εξάγουμε τις πληροφορίες των ονομάτων που αρχίζουν με " Chris " από το ακόλουθο σύνολο δεδομένων.
Βήματα :
- Ανοίξτε το Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
- Στο παράθυρο κώδικα, αντιγράψτε τον ακόλουθο κώδικα και επικολλήστε τον.
Sub SearchSub() Dim lastrow As Long Dim i As Integer, count As Integer lastrow = ActiveSheet.Range("A30000").End(xlUp).Row For i = 1 To lastrow If InStr(1, LCase(Range("C" & i)), "Chris") 0 Then count = count + 1 Range("F" & count & ":H" & count) = Range("B" & i & ":D" & i).Value End If Next i End Sub
Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.
- Εκτέλεση τον κώδικα.
Μόνο τα ονόματα που αρχίζουν με " Chris " θα αποθηκευτεί στα προκαθορισμένα κελιά.