VBA για να κάνετε βρόχο στις σειρές του πίνακα στο Excel (11 μέθοδοι)

  • Μοιραστείτε Αυτό
Hugh West

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

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

Λήψη βιβλίου εργασίας

Μπορείτε να κατεβάσετε το δωρεάν βιβλίο ασκήσεων Excel από εδώ.

Βρόχος σε σειρές πίνακα με VBA.xlsm

11 Μέθοδοι με VBA για να κάνετε βρόχο στις σειρές του πίνακα στο Excel

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

Παραπάνω είναι το παράδειγμα συνόλου δεδομένων που θα ακολουθήσει αυτό το άρθρο για να περιγράψει τις μεθόδους.

1. Ενσωματώστε το VBA για να κάνετε βρόχο σε κάθε κελί σε κάθε γραμμή ενός πίνακα με βάση τον αριθμό αναφοράς κελιού

Αν θέλετε να βρόχος σε κάθε κελί σε κάθε γραμμή ενός πίνακα στο φύλλο εργασίας σας στο Excel και λάβετε το αριθμός αναφοράς κυττάρου ως τιμή επιστροφής , τότε ακολουθήστε τα βήματα που περιγράφονται παρακάτω.

Βήματα:

  • Στην αρχή, πατήστε Alt + F11 στο πληκτρολόγιό σας ή πηγαίνετε στην καρτέλα Προγραμματιστής -> Visual Basic για να ανοίξετε Visual Basic Editor .

  • Στη συνέχεια, στο αναδυόμενο παράθυρο κώδικα, από τη γραμμή μενού, κάντε κλικ στην επιλογή Εισαγωγή -> Ενότητα .

  • Τότε, αντίγραφο τον ακόλουθο κώδικα και επικόλληση στο παράθυρο κώδικα.
 Sub LoopThroughRowsByRef() LastRow = Range("B" &- Rows.Count).End(xlUp).Row FirstRow = 4 i = FirstRow FirstColumn = 2 Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column Count = FirstColumn Do Until Count> LastColumn MsgBox "Currently iterating cell " &- Chr(Count + 64) &- i Count = Count + 1 Loop i = i + 1 Loop End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Τώρα, πατήστε F5 στο πληκτρολόγιό σας ή από τη γραμμή μενού επιλέξτε Εκτέλεση -> Εκτέλεση Sub/UserForm Μπορείτε επίσης να κάνετε κλικ στο μικρό εικονίδιο Play στη γραμμή υπομενού για να εκτελέσετε τη μακροεντολή.

  • Ή για να παρακολουθήσετε και να συγκρίνετε οπτικά το σύνολο δεδομένων και το αποτέλεσμα, μπορείτε να save τον κώδικα και επιστροφή στο φύλλο εργασίας ενδιαφέροντος.
  • Από εκεί, μπορείτε να κάνετε κλικ στο Μακροεντολές από το Προγραμματιστής καρτέλα, επιλέξτε το όνομα της μακροεντολής, και στη συνέχεια κάντε κλικ στο Εκτέλεση .

Μετά την επιτυχή εκτέλεση του κώδικα, κοιτάξτε το παραπάνω gif για να δείτε το αποτέλεσμα. Θα εμφανιστεί ένα αναδυόμενο παράθυρο MsgBox δείχνοντάς σας το αριθμός αναφοράς κελιού κάθε κελιού από κάθε γραμμή από τον πίνακα στο φύλλο Excel.

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

 LastRow = Range("B" & Rows.Count).End(xlUp).Row 

Για να βρείτε τον τελευταίο αριθμό γραμμής στον πίνακα με αναζήτηση στη στήλη B.

 FirstRow = 4 

Ορίστε τον αριθμό γραμμής 4, από όπου ξεκινούν τα δεδομένα μας.

 i = FirstRow 

Για βρόχο από την πρώτη σειρά.

 FirstColumn = 2 

Ορίστε τη στήλη 2, από όπου ξεκινούν τα δεδομένα μας.

 Do Until i> LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column 

Ξεκινήστε τη βρόγχη μέσω των γραμμών για να λάβετε τον τελευταίο αριθμό στήλης αξιολογώντας την τρέχουσα γραμμή μέχρι την τελευταία γραμμή.

 Count = FirstColumn Do Until Count> LastColumn 

Αύξηση με βρόχο της στήλης από την πρώτη γραμμή μέχρι την τελευταία γραμμή.

 MsgBox "Currently iterating cell " &? Chr(Count + 64) & i Count = Count + 1 Loop i = i + 1 Loop 

Αυτό το κομμάτι κώδικα λειτουργεί για την επεξεργασία, την αύξηση μετά από κάθε επανάληψη και την εμφάνιση του αποτελέσματος του κώδικα.

Διαβάστε περισσότερα: Πώς να προσθέσετε αυτόματα νέα γραμμή σε έναν πίνακα του Excel

2. Εφαρμογή της VBA για τη βρόγχη σε κάθε κελί κάθε γραμμής ανά τιμή

Αν θέλετε να βρόχος σε κάθε κελί σε κάθε γραμμή ενός πίνακα και ρίχνει την τιμή που βρίσκεται στα κελιά ως τιμή επιστροφής , τότε αυτή η ενότητα θα σας βοηθήσει να καταλάβετε πώς να το κάνετε αυτό με το VBA Excel.

Μπορείτε να το κάνετε αυτό με το ListObject και με το DataBodyRange ιδιότητα του VBA Θα σας δείξουμε τον κώδικα της μακροεντολής με το αντικείμενο και την ιδιότητα.

2.1. Με το ListObject

Τα βήματα για να βρόχος σε κάθε κελί σε κάθε γραμμή ενός πίνακα με βάση την τιμή του κελιού με το ListObject στο VBA Excel δίνονται παρακάτω.

Βήματα:

  • Με τον ίδιο τρόπο όπως και πριν, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Στη συνέχεια, στο παράθυρο κώδικα, αντίγραφο τον ακόλουθο κώδικα και επικόλληση αυτό.
 Sub LoopThroughRowsByList() Dim iListRow As ListRow Dim iCol As Range For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Μετά από αυτό, Εκτέλεση τη μακροεντολή όπως σας δείξαμε στην παραπάνω ενότητα. Το αποτέλεσμα φαίνεται στο παρακάτω gif.

Θα υπάρχει ένα pop-up MsgBox δείχνοντάς σας το τιμή που φέρει κάθε κελί από κάθε γραμμή από τον πίνακα στο φύλλο Excel.

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

 Dim iListRow As ListRow Dim iCol As Range 

Ορίστε τις μεταβλητές.

 For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow 

Αυτό το κομμάτι κώδικα ξεκινάει πρώτα την επανάληψη των γραμμών του πίνακα (" TblStudents " είναι το όνομα του πίνακα μας). Στη συνέχεια εισάγει στήλες για κάθε γραμμή. Μετά από αυτό, περνάει την τιμή του κελιού στο MsgBox. Στη συνέχεια πηγαίνει στην επόμενη στήλη. Αφού τελειώσει την επανάληψη όλων των στηλών μιας γραμμής, τότε πηγαίνει στην επόμενη γραμμή και συνεχίζει τη διαδικασία επανάληψης μέχρι την τελευταία γραμμή.

2.2. Με την ιδιότητα DataBodyRange

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

Τα βήματα για το πώς μπορείτε να βρόχος σε κάθε κελί σε κάθε γραμμή ενός πίνακα ανά τιμή κελιού με το DataBodyRange στο VBA Excel δίνονται παρακάτω.

Βήματα:

  • Όπως φαίνεται προηγουμένως, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Τότε, αντίγραφο τον ακόλουθο κώδικα και επικόλληση στο παράθυρο κώδικα.
 Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Αργότερα, Εκτέλεση τη μακροεντολή και κοιτάξτε το ακόλουθο gif για να δείτε την έξοδο.

Θα υπάρχει ένα pop-up MsgBox δείχνοντάς σας το τιμή που φέρει κάθε κελί από κάθε γραμμή από τον πίνακα στο φύλλο Excel.

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

 Dim iRange As Range 

Ορίστε τη μεταβλητή.

 For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange 

Αυτό το κομμάτι κώδικα ξεκινάει πρώτα την επανάληψη των γραμμών του πίνακα (" TblStdnt " είναι το όνομα του πίνακα μας) και επιστρέφει ένα εύρος τιμών εξαιρουμένης της γραμμής επικεφαλίδας του πίνακα. Στη συνέχεια περνάει την τιμή του εύρους στο MsgBox. Στη συνέχεια πηγαίνει στην επόμενη γραμμή για να εξάγει το εύρος και συνεχίζει τη διαδικασία επανάληψης μέχρι την τελευταία γραμμή.

3. Εφαρμογή της μακροεντολής VBA για την επανάληψη των σειρών μέσω της συνένωσης στηλών στο Excel

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

Για παράδειγμα, για το σύνολο δεδομένων μας, πρώτα, θα επαναλάβουμε μέσω του John στο κελί B5 και 101 στο κύτταρο C5 συνδέοντάς τα και στη συνέχεια επαναλαμβάνουμε μέσω των John στο κελί B5 και 89 στο κελί D5 με τη συνένωσή τους από σειρά 5 .

Επιτρέψτε μας να σας δείξουμε πώς μπορείτε να το κάνετε αυτό με VBA μακροεντολή στο Excel.

Βήματα:

  • Αρχικά, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Δεύτερον, στο παράθυρο κώδικα, αντίγραφο τον ακόλουθο κώδικα και επικόλληση αυτό.
 Sub LoopThroughRowsByConcatenatingCol() Dim iRange As Range Dim iValue As String With ActiveSheet.ListObjects("TblConcatenate") For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Τρίτον, Εκτέλεση Κοιτάξτε το παρακάτω gif για να δείτε το αποτέλεσμα.

Θα υπάρχει ένα pop-up MsgBox δείχνοντάς σας το τη συνυφασμένη τιμή των κελιών της πρώτης και της δεύτερης στήλης ( John στο κελί B5 από Colum B και 101 στο κελί C5 από τη στήλη C ) και στη συνέχεια το τη συνυφασμένη τιμή των κελιών της πρώτης και της τρίτης στήλης ( John στο κελί B5 από Colum B και 89 στο κελί D5 από τη στήλη D ) του αριθμός σειράς 5 από το σύνολο δεδομένων σας. Και αυτή η πράξη συνένωσης θα συνεχίσει μέχρι να φτάσει στην τελευταία γραμμή του πίνακα.

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

 Dim iRange As Range Dim iValue As String 

Ορίστε τη μεταβλητή.

 Με ActiveSheet.ListObjects("TblConcatenate") 

Στη συνέχεια, ο κώδικας επιλέγει τον πίνακα από το ενεργό φύλλο (" TblConcatenate " στο όνομα του πίνακα μας).

 For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value 

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

 Else MsgBox "Evaluating " & iValue & ": " & iRange.Value End If Next iRange End With 

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

4. Ενσωμάτωση μακροεντολής για την επανάληψη σειρών με συνένωση όλων των στηλών ενός πίνακα στο Excel

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

Τα βήματα για την εκτέλεσή του φαίνονται παρακάτω.

Βήματα:

  • Πρώτον, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Τότε, αντίγραφο τον ακόλουθο κώδικα και επικόλληση στο παράθυρο κώδικα.
 Sub LoopThroughRowsByConcatenatingAllCol() Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") Set iObj = iSheet.ListObjects("TblConcatenateAll") For Each iRow In iObj.ListRows For Each iCol In iObj.ListColumns iResult = iResult & " " &,Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Επόμενο, Εκτέλεση τον κώδικα μακροεντολών.

Όπως μπορείτε να δείτε από το παραπάνω gif είναι ότι υπάρχει ένα pop-up MsgBox δείχνοντάς σας το συνυφασμένη τιμή όλων των στηλών που βρίσκονται σε κάθε γραμμή από τον πίνακα του φύλλου εργασίας σας στο Excel.

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

 Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String 

Ορίστε τις μεταβλητές.

 Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") 

Ορίστε το όνομα του φύλλου με το οποίο θα δουλέψουμε (" ConcatenatingAllCol " είναι το όνομα του φύλλου στο βιβλίο εργασίας).

 Set iObj = iSheet.ListObjects("TblConcatenateAll") 

Ορίστε το όνομα του πίνακα με τον οποίο θα εργαστούμε (" TblConcatenateAll " είναι το όνομα του πίνακα στο σύνολο δεδομένων μας).

 For Each iRow In iObj.ListRows 

Ξεκινά την επανάληψη σε κάθε γραμμή του πίνακα.

 For Each iCol In iObj.ListColumns 

Ξεκινά την επανάληψη σε κάθε στήλη κάθε γραμμής του πίνακα.

 iResult = iResult &? " " & Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow 

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

Διαβάστε περισσότερα: Πώς να ταξινομήσετε πολλαπλές στήλες ενός πίνακα με το Excel VBA (2 μέθοδοι)

5. Διακοπή της επανάληψης εάν βρεθεί τιμή με looping σε σειρές ενός πίνακα με μακροεντολή VBA

Ας υποθέσουμε ότι θέλετε να βρόχος στις γραμμές του πίνακα σας έχει και να σταματήσει τον βρόχο όταν βρει μια συγκεκριμένη τιμή Μπορείτε να το κάνετε αυτό με έναν απλό κώδικα μακροεντολών.

Ας μάθουμε πώς να το κάνουμε αυτό VBA στο Excel.

Βήματα:

  • Αρχικά, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Στη συνέχεια, στο παράθυρο κώδικα, αντίγραφο τον ακόλουθο κώδικα και επικόλληση αυτό.
 Sub LoopThroughRowsForValue() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Αργότερα, Εκτέλεση η μακροεντολή.
  • Θα να ξεκινήσει ο βρόχος και να τον σταματήσει όταν βρει τη συγκεκριμένη τιμή (" Άκρη ") στην περιοχή και πετάει το αποτέλεσμα στο MsgBox .

Όπως μπορείτε να δείτε στην παραπάνω εικόνα, υπάρχει ένα αναδυόμενο MsgBox που σας δείχνει το διεύθυνση κελιού, $B$10 , όπου βρήκαμε την καθορισμένη τιμή, " Άκρη " .

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

 Dim iData As Range 

Ορίστε τη μεταβλητή.

 For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & iData.Address End If Next iData 

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

Διαβάστε περισσότερα: Πώς να εισαγάγετε ή να διαγράψετε γραμμές και στήλες από τον πίνακα του Excel

6. VBA για να κάνετε βρόχο σε κάθε γραμμή και να χρωματίσετε μια συγκεκριμένη τιμή στο Excel

Τι γίνεται αν δεν θέλετε να πετάξετε τη διεύθυνση κελιού της καθορισμένης τιμής στο MsgBox; Ίσως να θέλετε να χρωματίζει το κελί που φέρει την τιμή που ψάχνετε.

Ας μάθουμε πώς να το κάνουμε αυτό με VBA macro.

Βήματα:

  • Με τον ίδιο τρόπο όπως και πριν, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Τότε, αντίγραφο τον ακόλουθο κώδικα και επικόλληση στο παράθυρο κώδικα.
 Sub LoopThroughRowsAndColor() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Μετά από αυτό, Εκτέλεση η μακροεντολή.
  • Θα ξεκινάει τον βρόχο και τον σταματάει όταν βρει τη συγκεκριμένη τιμή (" Άκρη ") στο εύρος και χρωματίζει το κελί με το ColourIndex που δώσατε στον κώδικα.

Όπως μπορείτε να δείτε από την παραπάνω εικόνα, C ell B10 , όπου βρήκαμε την καθορισμένη τιμή, " Άκρη " είναι χρωματισμένο μετά την εκτέλεση του κώδικα.

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

 Dim iData As Range 

Ορίστε τη μεταβλητή.

 For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData 

Αυτό το κομμάτι του κώδικα είναι εδώ για την επανάληψη των γραμμών από το 1 έως το 15. Αν βρει τη συγκεκριμένη λέξη " Άκρη ", τότε χρωματίζει το κελί που περιέχει τη λέξη. Συνεχίζει να το κάνει αυτό μέχρι να ολοκληρώσει τη σάρωση όλων των δεδομένων από τις γραμμές 1 έως 15 για την αναζήτηση της λέξης.

Διαβάστε περισσότερα: Πώς να χρησιμοποιήσετε τη συστοιχία πίνακα VLOOKUP με βάση την τιμή κελιού στο Excel

Παρόμοιες αναγνώσεις

  • Υπάρχει η λειτουργία TABLE στο Excel;
  • Πώς να μετατρέψετε πίνακα σε λίστα στο Excel (3 γρήγοροι τρόποι)
  • Μετατροπή περιοχής σε πίνακα στο Excel (5 εύκολες μέθοδοι)
  • Αποτελεσματική χρήση τύπων σε έναν πίνακα του Excel (με 4 παραδείγματα)
  • Όνομα πίνακα του Excel: Όλα όσα πρέπει να γνωρίζετε

7. Εφαρμογή της VBA για να κάνετε βρόχο σε κάθε γραμμή και να χρωματίσετε κάθε μονή γραμμή στο Excel

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

Τα βήματα για την εκτέλεση της διαδικασίας περιγράφονται παρακάτω.

Βήματα:

  • Όπως φαίνεται προηγουμένως, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Τότε, αντίγραφο τον ακόλουθο κώδικα και επικόλληση στο παράθυρο κώδικα.
 Sub LoopThroughRowsAndColorOddRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Τώρα, Εκτέλεση τη μακροεντολή και κοιτάξτε την ακόλουθη εικόνα για να δείτε την έξοδο.

Όλα τα οι μονές σειρές είναι χρωματισμένες μετά από επανάληψη όλων των γραμμών που βρίσκονται στον πίνακα του φύλλου εργασίας.

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

 Dim iRow As Long 

Ορίστε τη μεταβλητή.

 With Range("B4").CurrentRegion 

Ορίστε το εύρος με το οποίο θα εργαστούμε.

 For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With 

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

8. Εφαρμογή της VBA για τη βρόγχη σε σειρές και το χρωματισμό κάθε ζυγούσας γραμμής στο Excel

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

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

Βήματα:

  • Πρώτον, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Τότε, αντίγραφο τον ακόλουθο κώδικα και επικόλληση στο παράθυρο κώδικα.
 Sub LoopThroughRowsAndColorEvenRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Επόμενο, Εκτέλεση τη μακροεντολή και κοιτάξτε την παρακάτω εικόνα για να δείτε το αποτέλεσμα.

Όλα τα οι ζυγές σειρές είναι χρωματισμένες μετά από επανάληψη όλων των γραμμών που βρίσκονται στον πίνακα του φύλλου εργασίας.

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

 Dim iRow As Long 

Ορίστε τη μεταβλητή.

 With Range("B4").CurrentRegion 

Ορίστε το εύρος με το οποίο θα εργαστούμε.

 For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With 

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

9. Εφαρμογή μακροεντολής για την επανάληψη σειρών μέχρι το κενό κελί στο Excel

Αν θέλετε ο κώδικάς σας να λειτουργεί όπως θα λειτουργεί βρόχος σε όλες τις γραμμές του πίνακα και διακοπή όταν φτάσει σε ένα κενό κελί , τότε αυτή η ενότητα είναι για εσάς. Μπορείτε να εκτελέσετε αυτή την εργασία τόσο με την εντολή FOR Loop και το Βρόχος Do-Until στο Excel VBA .

9.1. Με βρόχο FOR

Βήματα για να βρόχος μέσα από τις γραμμές ενός πίνακα μέχρι ένα κενό κελί με FOR Loop στο VBA Excel δίνονται παρακάτω.

Βήματα:

  • Αρχικά, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Μετά από αυτό, αντίγραφο τον ακόλουθο κώδικα και επικόλληση στο παράθυρο κώδικα.
 Sub ForLoopThroughRowsUntilBlank() Dim x As Integer Application.ScreenUpdating = False NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count Range("B4").Select For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next Application.ScreenUpdating = True End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Τότε, Εκτέλεση τη μακροεντολή και το αποτέλεσμα φαίνεται στο παρακάτω gif.

Μετά την εκτέλεση της μακροεντολής, θα άρχισε να κάνει looping σε όλες τις γραμμές στον πίνακα και μόλις φτάσει στο κενό κελί, κελί Β8 , αυτό σταμάτησε την επανάληψη .

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

 Dim x As Integer 

Ορίστε τη μεταβλητή.

 Application.ScreenUpdating = False 

Απενεργοποιήστε το συμβάν ενημέρωσης οθόνης.

 NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count 

Αποθηκεύστε όλες τις γραμμές ξεκινώντας από Κύτταρο B4 μέχρι το τελευταίο.

 Range("B4").Select 

Επιλέξτε Κύτταρο B4 .

 For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next 

Όταν βρίσκει ένα κενό κελί σε μια γραμμή, το επιλέγει και συνεχίζει να σαρώνει τις γραμμές μέχρι να φτάσει στο τέλος.

 Application.ScreenUpdating = True 

Ενεργοποιήστε το συμβάν ενημέρωσης οθόνης.

9.2. Με βρόχο Do-Until

Βήματα για να βρόχος μέσα από γραμμές μέχρι ένα κενό κελί με βρόχο Do-Until στο VBA δίνονται παρακάτω.

Βήματα:

  • Πρώτον, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Τότε, αντίγραφο τον ακόλουθο κώδικα και επικόλληση στο παράθυρο κώδικα.
 Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Αργότερα, Εκτέλεση Το αποτέλεσμα φαίνεται στο ακόλουθο gif.

Μετά την εκτέλεση της μακροεντολής, ξεκίνησε βρόχος σε όλες τις γραμμές στον πίνακα και μόλις φτάσει στο κενό κελί, κελί Β8 , αυτό σταμάτησε την επανάληψη .

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

 Range("B4").Select 

Επιλέξτε το κελί από το οποίο θα εργαστούμε.

 Do Until IsEmpty(ActiveCell) 

Ξεκινά και συνεχίζει την επανάληψη μέχρι να βρεθεί ένα κενό κελί.

 ActiveCell.Offset(1, 0).Select Loop 

Όταν βρεθεί ένα κενό κελί σε μια σειρά, τότε επιλέξτε το και σταματήστε την επανάληψη.

10. Μακροεντολή VBA για την επανάληψη σειρών μέχρι πολλαπλά κενά κελιά στο Excel

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

Τα βήματα για να βρόχος μέσα από τις γραμμές μέχρι πολλαπλά κενά κελιά βρίσκονται σε έναν πίνακα με VBA Excel παρουσιάζονται παρακάτω.

Βήματα:

  • Πρώτον, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Τότε, αντίγραφο τον ακόλουθο κώδικα και επικόλληση στο παράθυρο κώδικα.
 Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Τώρα, Εκτέλεση τη μακροεντολή και δείτε το ακόλουθο gif για την έξοδο.

Μετά την εκτέλεση της μακροεντολής, θα δεν σταμάτησε στο πρώτο κενό κελί, το κελί B8 . Σταμάτησε όταν βρήκε δύο διαδοχικά κενά κύτταρα στο κύτταρο B16 .

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

 Range("B4").Select 

Επιλέξτε το κελί από το οποίο θα εργαστούμε.

 Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) 

Ξεκινά και συνεχίζει την επανάληψη μέχρι να βρεθούν δύο διαδοχικά κενά κελιά.

 ActiveCell.Offset(2, 0).Select Loop 

Όταν βρεθούν δύο διαδοχικά κενά κελιά, τότε επιλέξτε το και σταματήστε την επανάληψη.

11. Ενσωματώστε το VBA για να κάνετε βρόχο σε σειρές με συνένωση όλων των στηλών μέχρι να μείνουν κενές στο Excel

Αυτή η ενότητα θα σας δείξει πώς να βρόχος σε όλες τις γραμμές ενός πίνακα και συνένωση όλων των στηλών μέχρι ένα κενό κελί βρίσκεται με VBA Excel.

Ας μάθουμε πώς να το κάνουμε αυτό με VBA μακροεντολή στο Excel.

Βήματα:

  • Αρχικά, ανοίξτε Visual Basic Editor από το Προγραμματιστής και Εισαγωγή a Ενότητα στο παράθυρο κώδικα.
  • Τότε, αντίγραφο τον ακόλουθο κώδικα και επικόλληση στο παράθυρο κώδικα.
 Sub ConcatenatingAllColUntilBlank() Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String Set iSheet = Sheets("ConcatenatingAllColUntilBlank") iValue = Range("B4").CurrentRegion For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J)), iResult & " " & iValue(i, J)) Next J MsgBox iResult Next i End Sub 

Ο κώδικάς σας είναι τώρα έτοιμος για εκτέλεση.

  • Αργότερα, Εκτέλεση τη μακροεντολή και δείτε το ακόλουθο gif για το αποτέλεσμα.

Όπως μπορείτε να δείτε από το παραπάνω gif είναι ότι υπάρχει ένα pop-up MsgBox δείχνοντάς σας το συνυφασμένη τιμή όλων των στηλών που βρίσκονται σε κάθε γραμμή από τον πίνακα του φύλλου εργασίας σας στο Excel. Αλλά αυτό σταμάτησε μόλις έφτασε στο κενό κελί .

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

 Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String 

Ορίστε τις μεταβλητές.

 Set iSheet = Φύλλα("ConcatenatingAllColUntilBlank") 

Ορίστε το όνομα του φύλλου με το οποίο θα δουλέψουμε (" ΣυνδέονταςAllColUntilBlank " είναι το όνομα του φύλλου στο βιβλίο εργασίας).

 iValue = Range("B4").CurrentRegion 

Ορίστε το εύρος με το οποίο θα εργαστούμε.

 For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & " " & iValue(i, J)) Next J MsgBox iResult Next i 

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

Συμπέρασμα

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

Ο Hugh West είναι ένας εξαιρετικά έμπειρος εκπαιδευτής και αναλυτής του Excel με πάνω από 10 χρόνια εμπειρίας στον κλάδο. Είναι κάτοχος πτυχίου Λογιστικής και Χρηματοοικονομικής και μεταπτυχιακού στη Διοίκηση Επιχειρήσεων. Ο Hugh έχει πάθος για τη διδασκαλία και έχει αναπτύξει μια μοναδική προσέγγιση διδασκαλίας που είναι εύκολο να ακολουθηθεί και να κατανοηθεί. Οι εξειδικευμένες γνώσεις του στο Excel έχουν βοηθήσει χιλιάδες φοιτητές και επαγγελματίες παγκοσμίως να βελτιώσουν τις δεξιότητές τους και να διαπρέψουν στην καριέρα τους. Μέσω του ιστολογίου του, ο Hugh μοιράζεται τις γνώσεις του με τον κόσμο, προσφέροντας δωρεάν μαθήματα Excel και διαδικτυακή εκπαίδευση για να βοηθήσει άτομα και επιχειρήσεις να αξιοποιήσουν πλήρως τις δυνατότητές τους.