Υποβιβασμός VBA | Πώς να εξαγάγετε Substring χρησιμοποιώντας λειτουργίες VBA;

SubString Excel VBA

Το SubString είναι μέρος της συμβολοσειράς ή τμήματος ή ο χαρακτήρας της συμβολοσειράς ονομάζεται "SubString". Υπάρχουν τρεις τύποι λειτουργιών υποστρώματος σε VBA LEFT, RIGHT και MID που είναι παρόμοιοι με τα substrings του φύλλου εργασίας στο excel.

Μια συμβολοσειρά δεν είναι τίποτα άλλο παρά μια σειρά χαρακτήρων και χαρακτήρων που θα μπορούσαν να είναι αλφάβητα, αριθμοί, ειδικοί χαρακτήρες και επίσης να συνδυάζουν όλα αυτά.

Συχνά φορές σε excel όταν δουλεύουμε με δεδομένα που είναι η συμβολοσειρά πρέπει να πάρουμε μόνο το τμήμα της συμβολοσειράς για να διευκολύνουμε τον σκοπό μας. Μπορεί να μην χρειαστεί να χρησιμοποιηθεί η πλήρης συμβολοσειρά, αλλά χρειαζόμαστε μόνο το μέρος της συμβολοσειράς για τη χρήση μας. Για παράδειγμα, εάν έχετε το όνομα "Sachin Tendulkar" μπορεί να χρειαστείτε μόνο το πρώτο μέρος του ονόματος, δηλαδή μόνο το "Sachin". Αυτό ονομάζεται SubString της συμβολοσειράς στο Excel VBA. Για να αντιμετωπίσουμε αυτές τις χορδές έχουμε ενσωματωμένες συναρτήσεις κάτω από τη συνάρτηση TEXT στην κατηγορία excel.

Σε αυτό το άρθρο, θα συζητήσουμε πώς να λάβετε το substring από την πλήρη συμβολοσειρά στο VBA.

Πώς να χρησιμοποιήσετε τις λειτουργίες SubString στο VBA;

Για να εξαγάγετε το substring από τη συμβολοσειρά έχουμε μερικές από τις ενσωματωμένες λειτουργίες κειμένου και μερικές από τις σημαντικές λειτουργίες είναι ΑΡΙΣΤΕΡΑ, ΔΕΞΙΑ, INSTR και MID στο excel. Η συνάρτηση Instr θα χρησιμεύσει ως υποστηρικτική συνάρτηση για τις άλλες τρεις λειτουργίες.

Θα δούμε πώς να χρησιμοποιούμε αυτές τις λειτουργίες για να εξαγάγουμε πρακτικά τα υποστρώματα. Διαβάστε τα παρακάτω παραδείγματα για να τα κατανοήσετε.

Μπορείτε να κατεβάσετε αυτό το πρότυπο VBA SubString Excel εδώ - Πρότυπο VBA SubString Excel

Παράδειγμα # 1 - Χρήση της Αριστεράς Λειτουργίας

Εάν έχετε το πλήρες όνομα ως "Sachin Tendulkar" και χρειάζεστε μόνο το πρώτο όνομα που πρέπει να εξαχθεί καθώς το υπόστρωμα χρησιμοποιήστε τον ακόλουθο κωδικό για να πάρετε το ίδιο.

Βήμα 1: Δημιουργήστε ένα όνομα μακροεντολής και ορίστε δύο μεταβλητές ως συμβολοσειρά.

Κώδικας:

 Sub Subtrack_Example1 () Dim FullName As String Dim FirstName As String End Sub 

Βήμα 2: Τώρα ορίστε το όνομα "Sachin Tendulkar" στη μεταβλητή FullName .

Κώδικας:

 Sub Subtrack_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" End Sub 

Βήμα 3: Τώρα η μεταβλητή FullName διατηρεί την τιμή του "Sachin Tendulkar". Τώρα πρέπει να εξαγάγουμε το υπόστρωμα VBA excel του πρώτου ονόματος από το πλήρες όνομα. Έτσι, εκχωρήστε την τιμή για τη μεταβλητή FirstName μέσω της συνάρτησης LEFT.

Κώδικας:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (End Sub 

Βήμα 4: Το πρώτο όρισμα της συνάρτησης VBA LEFT είναι String, δηλαδή ποια είναι η πλήρης τιμή ή η πλήρης συμβολοσειρά. Σε αυτό το παράδειγμα, η πλήρης τιμή ή η συμβολοσειρά μας είναι το "Sachin Tendulkar" που αντιστοιχεί στη μεταβλητή FullName.

Επομένως, παρέχετε τη μεταβλητή FullName ως όρισμα.

Κώδικας:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Αριστερό τέλος Sub 

Βήμα 5: Το επόμενο  επιχείρημα είναι πόσους χαρακτήρες χρειαζόμαστε από τη συμβολοσειρά που έχουμε παράσχει, οπότε σε αυτήν την περίπτωση χρειαζόμαστε το όνομα " Sachin ", οπότε χρειαζόμαστε συνολικά 6 χαρακτήρες από την αριστερή πλευρά.

Κώδικας:

 Sub Subtrack_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) End Sub 

Βήμα 6: Τώρα δείξτε το αποτέλεσμα σε ένα πλαίσιο μηνυμάτων στο VBA.

Κώδικας:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) MsgBox FirstName End Sub 

Βήμα 7: Εκτελέστε τη μακροεντολή, δείτε το όνομα ως υπόστρωμα στο πλαίσιο μηνύματος.

Παράδειγμα # 2 - Λήψη SubString από τα δεξιά

Όπως και πώς έχουμε εξαγάγει το υπόστρωμα από τα αριστερά ομοίως μπορούμε να το εξαγάγουμε και από τα δεξιά. Πάρτε το ίδιο όνομα με ένα παράδειγμα.

Βήμα 1: Ορίστε δύο μεταβλητές ως συμβολοσειρά.

Κώδικας:

 Sub SubString_Example2 () Dim FullName As String Dim LastName As String End Sub 

Βήμα 2: Ως συνήθως ορίστε την τιμή στη μεταβλητή FullName ως "Sachin Tendulkar"

Κώδικας:

 Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" End Sub 

Βήμα 3: Τώρα για τη μεταβλητή LastName αντιστοιχίστε την τιμή μέσω της λειτουργίας RIGHT excel.

Κώδικας:

 Sub Subtrack_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (End Sub 

Βήμα 4: Η συμβολοσειρά είναι το πλήρες όνομά μας, οπότε παρέχετε τη μεταβλητή.

Κώδικας:

 Sub Subtrack_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, End Sub 

Βήμα 5: Το μήκος είναι πόσους χαρακτήρες χρειαζόμαστε από τη δεξιά πλευρά, χρειαζόμαστε 9 χαρακτήρες από τη δεξιά πλευρά.

Κώδικας:

 Sub Subtrack_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) End Sub 

Βήμα 6: Εμφάνιση αυτής της τιμής στο πλαίσιο μηνύματος .

Κώδικας:

 Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) MsgBox LastName End Sub 

Βήμα 7: Εκτελέστε τη μακροεντολή που θα δούμε το επώνυμο στο πλαίσιο μηνύματος.

Παράδειγμα # 3 - Χρήση της λειτουργίας Instr

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

Η συνάρτηση Instr θα επιστρέψει την παρεχόμενη θέση χαρακτήρα στη συμβολοσειρά. Για παράδειγμα δείτε τον παρακάτω κώδικα.

Κώδικας:

 Sub SubString_Example3 () Dim Position as String Position = InStr (1, "Sachin", "a") MsgBox Position End Sub 

InStr (1, "Sachin", "a") θα προσδιορίσει τη θέση του γράμματος "a" ως την πρώτη εμφάνιση στη συμβολοσειρά "Sachin". Σε αυτήν την περίπτωση το γράμμα "a" βρίσκεται στη δεύτερη θέση. Έτσι θα λάβουμε 2 ως αποτέλεσμα στο πλαίσιο μηνυμάτων.

Έτσι, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση Instr για να βρούμε το διαστημικό χαρακτήρα μεταξύ του ονόματος και του επωνύμου.

Για παράδειγμα δείτε το παρακάτω όνομα που έχω στο φύλλο excel.

Χρησιμοποιώντας τη συνάρτηση LEFT, RIGHT και Instr μπορούμε να εξαγάγουμε τα substrings. Παρακάτω είναι ο κωδικός για την εξαγωγή του Όνομα.

Κώδικας:

 Sub FirstName () Dim K As Long Dim LR As Long LR = Cells (Rows.Count, 1). End (xIUp). Row For K = 2 to LR Cells (K, 2). Value = Left (Κελιά (K, 1). Value, InStr (1, Cells (K, 1). Value, "") - 1) Next K End Sub 

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

Χρησιμοποιήστε τον παρακάτω κωδικό για να εξαγάγετε το επώνυμο ως substring.

Κώδικας:

 Sub LastName () Dim K As Long Dim LR As Long LR = Cells (Rows.Count, 1). End (xIUp). Row For K = 2 to LR Cells (K, 3). Value = Right (Κελιά (K, 1). Value, Len (Cells (K, 1)) - InStr (1, Cells (K, 1). Value, "")) Next Next End End 

Εκτελέστε τη μακροεντολή και θα δούμε το επώνυμο στο πλαίσιο μηνύματος.

Έχω εκχωρήσει το κουμπί μακροεντολής στο φύλλο εργασίας, κατεβάζω το βιβλίο εργασίας και τα χρησιμοποιώ.