Πώς να αποκτήσετε την πρώτη λέξη στο Microsoft Excel

Anonim

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

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

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

Μπορείτε να βρείτε την αρχική ερώτηση εδώ

Ακολουθεί ένα στιγμιότυπο του κειμένου εισαγωγής (Πριν από το φύλλο)

Ακολουθεί ένα στιγμιότυπο του κειμένου εισαγωγής (Μετά το φύλλο) στη στήλη Α & απαιτεί έξοδο στη στήλη Β. ανατρέξτε παρακάτω στιγμιότυπο:

Για να πάρετε τον κωδικό? πρέπει να ακολουθήσουμε τα παρακάτω βήματα για να ξεκινήσουμε τον επεξεργαστή VB

  • Κάντε κλικ στην καρτέλα Προγραμματιστής
  • Από την ομάδα κωδικών, επιλέξτε Visual Basic

  • Αντιγράψτε τον παρακάτω κώδικα στην τυπική μονάδα
 Λειτουργία FirstWordOnly (rng As Range) Dim Arr () As Variant Dim Count As Integer Dim i As Integer Count = Len (rng) - Len (Replace (rng, Chr (10), "")) If Count> 0 then ReDim Arr (0 για μέτρηση) Για i = 0 για μέτρηση Εάν i = 0 Τότε Arr (i) = Αριστερά (rng, InStr (1, rng, "") - 1) ElseIf j = 0 Τότε j = InStr (1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Else j = InStr (j + 1, rng, Chr (10)) Arr (i) = Mid (rng, j + 1, InStr (j, rng, "") - j) Τέλος αν Επόμενο FirstWordOnly = Συμμετοχή (Arr, ";") Άλλα Αν InStr (1, rng, "")> 0 Τότε FirstWordOnly = Αριστερά (rng, InStr (1, rng, "")) Else FirstWordOnly = rng Τέλος Αν Τέλος Αν Τερματισμός Λειτουργία 

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

  • Για να λάβετε την έξοδο χρησιμοποιώντας UDF στο κελί B2, ο τύπος θα είναι
  • = FirstWordOnly (A2)

Επεξήγηση κώδικα:

Στον παραπάνω κώδικα, χρησιμοποιήσαμε συναρτήσεις COUNT, LEN, REPLACE, IF, INSTR, MID, CHR, LEFT, JOIN VBA.

  • ‘Len (rng)’; αυτό θα ελέγξει το μήκος του κελιού στο οποίο αναφερόμαστε
  • «Αντικατάσταση (rng, Chr (10)," ") '; Ο κωδικός ελέγχει το Chr (10), δηλαδή τη διακοπή γραμμής σε κάθε γραμμή και στη συνέχεια αντικαθίσταται με διπλό απόσπασμα (τίποτα)
  • ‘Count = Len (rng) - Len (Replace (rng, Chr (10)," ")) '; Ο Count θα αποθηκεύσει τη διαφορά μήκους κάθε γραμμής μετά την αντικατάσταση του διαλείμματος γραμμής
  • Εάν μετράει> 0? Αυτό θα ελέγξει εάν το μήκος του Count είναι μεγαλύτερο από το μηδέν και αν βρεθεί ίσο με το μηδέν, δηλ. το κελί είναι κενό, τότε η συνθήκη IF δεν θα εκτελέσει τον κώδικα. Για να το ελέγξετε, μπορείτε να χρησιμοποιήσετε το = FirstWordOnly (A5) στο κελί B5 και θα επιστρέψει 0

  • Εάν το κελί δεν είναι κενό, τότε ο βρόχος For θα χρησιμοποιηθεί με συνθήκη IF και, με τη λειτουργία LEFT, θα ανακτήσουμε την πρώτη λέξη
  • Η συνάρτηση JOIN θα προσθέσει ερωτηματικό στο τέλος αν υπάρχουν πολλές γραμμές σε κάθε κελί

Συμπέρασμα: Χρησιμοποιώντας το UDF μπορούμε να αφαιρέσουμε τα πάντα σε κάθε γραμμή κελιού εκτός από την πρώτη λέξη μέσω VBA. Αυτή η λειτουργία θα λειτουργήσει σε όλες τις εκδόσεις από παλιά σε νέα, δηλαδή Microsoft Excel 2003, Microsoft Excel 2007, Microsoft Excel 2010, Microsoft Excel 2013.

Αν σας άρεσαν τα ιστολόγια μας, μοιραστείτε το με τους φίλους σας στο Facebook. Επίσης, μπορείτε να μας ακολουθήσετε στο Twitter και το Facebook.
Θα θέλαμε πολύ να σας ακούσουμε, ενημερώστε μας πώς μπορούμε να βελτιώσουμε, να συμπληρώσουμε ή να καινοτομήσουμε το έργο μας και να το κάνουμε καλύτερο για εσάς. Γράψτε μας στον ιστότοπο email