Σε αυτό το άρθρο, θα δημιουργήσουμε μια μακροεντολή για οριοθέτηση κειμένου σε ένα κελί σε στήλη κάθετα. Μπορούμε να οριοθετήσουμε το κείμενο στο κελί με βάση τον οριοθέτη. Οριοθέτης μπορεί να είναι είτε κόμμα, κενό, ανάστροφο κλπ.
Για να εξηγήσουμε τη λειτουργία της μακροεντολής, έχουμε λάβει τη διεύθυνση URL ως δείγμα κειμένου στο κελί A10. Η μακροεντολή μπορεί να εκτελεστεί κάνοντας κλικ στο κουμπί "Υποβολή".
Μετά την εκτέλεση της μακροεντολής, θα επιστρέψει την έξοδο στην επόμενη στήλη. Η τιμή κειμένου στο κελί διαχωρίζεται σε πολλές δευτερεύουσες συμβολοσειρές σε πολλά κελιά στη δεύτερη στήλη.
Λογική εξήγηση
Έχουμε δημιουργήσει μια μακροεντολή "texttocolonns" η οποία εκτελεί δύο εργασίες. Πρώτον, οριοθετεί τη συμβολοσειρά στο A10 σε πολλές υπο -συμβολοσειρές, με βάση τον οριοθέτη. Σε αυτό το παράδειγμα, έχουμε χρησιμοποιήσει την παύλα (-) ως οριοθέτη. Δεύτερον, διασχίζει δημιουργημένες δευτερεύουσες συμβολοσειρές από πολλές στήλες σε μία μόνο στήλη.
Επεξήγηση κώδικα
Rng.texttocolumns Προορισμός: = Rng.Offset (0, 1), DataType: = xlDelimited, _
TextQualifier: = xlDoubleQuote, ConsectiveDelimiter: = True, Other: = True, OtherChar _
:="-"
Ο παραπάνω κώδικας χρησιμοποιείται για την οριοθέτηση της συμβολοσειράς στην περιοχή "Rng". Ο προορισμός καθορίζει το εύρος τοποθεσιών όπου θα εμφανιστεί η έξοδος. Το DataType καθορίζει τον τύπο οριοθέτη που χρησιμοποιείται. TextQualifier καθορίζει τον χαρακτήρα που χρησιμοποιείται για τον προσδιορισμό κειμένου. Το OtherChar καθορίζει τον χαρακτήρα που χρησιμοποιείται ως οριοθέτης.
Ακολουθήστε παρακάτω για τον κωδικό
Υποκείμενα κειμένου () "Δήλωση μεταβλητών Dim StartRow, i, LastCol As Long Dim Rng As Range" απενεργοποίηση της ειδοποίησης οθόνης Application.DisplayAlerts = Λάθος "Αρχικοποίηση της μεταβλητής StartRow = 10 Set Rng = Range (" A10 ") στο οριοθέτη Rng.texttocolumns Προορισμός: = Rng.Offset (0, 1), DataType: = xlDelimited, _ TextQualifier: = xlDoubleQuote, ConsectiveDelimiter: = True, Other: = True, OtherChar _: = "-" 'Εύρεση της στήλης αριθμός κελιών που περιέχουν την τελευταία συμβολοσειρά μετά την οριοθέτηση LastCol = Rng.End (xlToRight). Στήλη "τακτοποίηση του κειμένου σε στήλες σε σειρές Για i = 2 έως LastCol κελιά (10, i). Κόψτε κελιά (StartRow, 2) StartRow = StartRow + 1 Επόμενο i End Sub
Αν σας άρεσε αυτό το blog, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.
Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email