Μετρήστε λέξεις στο Excel VBA - Εύκολες μακροεντολές Excel

Πίνακας περιεχομένων

Παρακάτω θα δούμε ένα πρόγραμμα στο Excel VBA ότι μετράει τον αριθμό των λέξεων σε επιλεγμένο εύρος. Υποτίθεται ότι ένα ή περισσότερα κενά χωρίζουν τις λέξεις.

Κατάσταση:

1. Αρχικά, δηλώνουμε δύο αντικείμενα εύρους και τρεις μεταβλητές. Τα αντικείμενα Range τα λέμε rng και cell. Μια ακέραια μεταβλητή ονομάζουμε cellWords, μία ακέραια μεταβλητή ονομάζουμε totalWords και μία μεταβλητή συμβολοσειράς ονομάζουμε περιεχόμενο.

Dim rng Ως εύρος, κελί ως εύρος
Dim cellWords, totalWords As Integer, content as String

2. Αρχικοποιούμε το αντικείμενο Range rng με το επιλεγμένο εύρος και τις δύο μεταβλητές τύπου Integer με τιμή 0.

Ρύθμιση rng = Επιλογή
cellWords = 0
totalWords = 0

3. Θέλουμε να ελέγξουμε κάθε κελί σε μια τυχαία επιλεγμένη περιοχή (αυτό το εύρος μπορεί να είναι οποιουδήποτε μεγέθους). Στο Excel VBA, μπορείτε να χρησιμοποιήσετε τον βρόχο Για κάθε επόμενο για αυτό. Προσθέστε τις ακόλουθες γραμμές κώδικα:

Για κάθε κελί σε rng
Επόμενο κελί

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

4. Στη συνέχεια, καθορίζουμε για κάθε κελί σε αυτό το εύρος πόσες λέξεις περιέχει. Για να αγνοήσετε ένα κελί που περιέχει έναν τύπο, προσθέστε την ακόλουθη γραμμή κώδικα μεταξύ Για Κάθε και Επόμενο (μόνο αν το κελί. Η HasFormula είναι ψευδής συνεχίζουμε).

If Not cell.HasFormula Τότε
Τέλος εαν

5. Αρχικά, γράφουμε το περιεχόμενο του κελιού στο μεταβλητό περιεχόμενο. Στη συνέχεια, αφαιρούμε τα κενά στην αρχή και στο τέλος (αν υπάρχουν). Στο Excel VBA, μπορείτε να χρησιμοποιήσετε τη συνάρτηση Trim για αυτό. Για παράδειγμα, το "excel vba" θα μετατραπεί σε "excel vba". Προσθέστε τις ακόλουθες γραμμές κώδικα στη δήλωση If.

περιεχόμενο = κελί. Αξία
περιεχόμενο = Περικοπή (περιεχόμενο)

Σημείωση: η λειτουργία περικοπής στο Excel VBA δεν αφαιρεί επιπλέον κενά μεταξύ λέξεων, αλλά αυτό είναι εντάξει σε αυτό το παράδειγμα.

6. Σε αυτό το σημείο, ένα κελί μπορεί να είναι ακόμα κενό. Εάν το κελί είναι κενό, εκχωρούμε την τιμή 0 στις μεταβλητές λέξεις κελιού. Εάν όχι, περιέχει τουλάχιστον μία λέξη και εκχωρούμε την τιμή 1 στις μεταβλητές κυψέλες. Προσθέστε τις ακόλουθες γραμμές κώδικα στη δήλωση If.

Αν περιεχόμενο = "" Τότε
cellWords = 0
Αλλού
cellWords = 1
Τέλος εαν

Ένα κελί μπορεί φυσικά να περιέχει περισσότερες από μία λέξεις. Αυτό ακριβώς θέλουμε να μάθουμε τώρα. Ως παράδειγμα παίρνουμε: "excel vba". Εάν ένα κελί περιέχει τουλάχιστον ένα διάστημα σε αυτό το στάδιο, περιέχει τουλάχιστον μία ακόμη λέξη. Μπορείτε να χρησιμοποιήσετε τη λειτουργία Instr στο Excel VBA για να αναζητήσετε χώρο. Το Instr (περιεχόμενο, "") βρίσκει τη θέση του πρώτου χώρου στο περιεχόμενο.

7. Θα χρησιμοποιήσουμε τη δομή Do while Loop. Ο κώδικας που τοποθετείται μεταξύ αυτών των λέξεων (στο βήμα 8, 9 και 10) θα επαναλαμβάνεται όσο ισχύει το τμήμα μετά το Do while. Θέλουμε να επαναλάβουμε αυτά τα βήματα όσο το Instr (περιεχόμενο, "")> 0 είναι αληθές (αρκεί το περιεχόμενο να περιέχει κενό και συνεπώς περισσότερες λέξεις). Προσθέστε το βρόχο Do while στη δήλωση If.

Do while InStr (περιεχόμενο, "")> 0
Βρόχος

8. Στη συνέχεια, παίρνουμε το μέρος του περιεχομένου ξεκινώντας από τη θέση του πρώτου χώρου. Χρησιμοποιούμε τη λειτουργία Mid για αυτό.

περιεχόμενο = Mid (περιεχόμενο, InStr (περιεχόμενο, ""))

Για παράδειγμα: Mid ("excel vba", InStr ("excel vba", "")) θα δώσει "vba".

9. Κόβουμε ξανά τη χορδή.

περιεχόμενο = Περικοπή (περιεχόμενο)

Αποτέλεσμα: "vba"

10. Αυξάνουμε τα cellWords κατά 1.

cellWords = cellWords + 1

Αυτός ο βρόχος "Ενώ κάνετε" θα επαναλαμβάνεται όσο το περιεχόμενο περιέχει κενό και συνεπώς περισσότερες λέξεις. Στο παράδειγμά μας, βγαίνουμε από το Do while Loop αφού το "vba" δεν περιέχει πλέον κενό! Αποτέλεσμα: αυτό το κελί περιέχει 2 λέξεις.

11. Αφού ελέγξουμε ένα κελί, προσθέτουμε cellWords στη μεταβλητή totalWords. Αυτή η γραμμή κώδικα θα πρέπει να τοποθετηθεί έξω από το Do while Loop αλλά στη δήλωση If.

totalWords = totalWords + cellWords

Η όλη διαδικασία ξεκινά ξανά για το επόμενο κελί μέχρι να ελεγχθούν όλα τα κελιά.

12. Τέλος, εμφανίζουμε την τιμή του totalWords χρησιμοποιώντας ένα msgbox. Αυτή η γραμμή κώδικα πρέπει να τοποθετηθεί έξω από το βρόχο Για κάθε επόμενο.

MsgBox totalWords & "λέξεις που βρέθηκαν στο επιλεγμένο εύρος."

13. Δοκιμάστε το πρόγραμμα.

Αποτέλεσμα:

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

wave wave wave wave wave