VBA για κάθε παράδειγμα (γρήγορη αναφορά)

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

Για κάθε βρόχο

Το For Every Loop σάς επιτρέπει να κάνετε βρόχο καθε αντικείμενο σε μια συλλογή:

  • Όλα τα κελιά σε μια περιοχή
  • Όλα τα φύλλα εργασίας σε ένα βιβλίο εργασίας
  • Όλα τα ανοιχτά βιβλία εργασίας
  • Όλα τα σχήματα σε ένα φύλλο εργασίας
  • Όλα τα στοιχεία σε έναν πίνακα
  • κι αλλα!

Για καθένα: Βασικά παραδείγματα

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

Loop Through Cells

Αυτή η διαδικασία θα περιηγηθεί σε κάθε κελί στην περιοχή A1: A10, ρυθμίζοντας το κελί στο σωστό ίσο με τον εαυτό του.

12345678 Sub ForEachCell ()Dim Cell As RangeΓια κάθε κελί σε φύλλα ("Sheet1"). Εύρος ("A1: A10")Cell.Offset (0, 1). Αξία = Cell.valueΕπόμενο κελίΤέλος υπο

Loop Through Sheets

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

12345678 Sub ForEachSheets ()Dim ws Ως φύλλο εργασίαςΓια κάθε ένα σε φύλλαws.Visible = TrueΕπόμενο φύλλοΤέλος υπο

Loop Through Workbooks

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

12345678 Sub ForEachWorkbooks ()Dim wb Ως βιβλίο εργασίαςΓια κάθε wb Σε βιβλία εργασίαςwb. ΚλείσιμοΕπόμενο wbΤέλος υπο

Loop Through Shapes

Αυτή η διαδικασία θα κάνει βρόχο σε κάθε σχήμα στο Sheet1, διαγράφοντας το καθένα.

12345678 Sub ForEachShape ()Dim Shp As ShapeΓια κάθε Shp σε φύλλα ("Sheet1"). ΣχήματαShp. ΔιαγραφήΕπόμενο ShpΤέλος υπο

Loop Through Charts

Αυτή η διαδικασία θα κάνει βρόχο σε κάθε γράφημα στο Sheet1, διαγράφοντας το καθένα.

12345678 Sub ForEachCharts ()Dim cht As ChartObjectΓια κάθε cht σε φύλλα ("Sheet1"). ChartObjectscht. ΔιαγραφήΕπόμενο chtΤέλος υπο

Loop Through PivotTables

Αυτή η διαδικασία θα κάνει βρόχο σε κάθε Συγκεντρωτικό Πίνακα στο Φύλλο1, καθαρίζοντας τον καθένα

12345678 Υπο ForEachPivotTables ()Dim pvt As PivotTableΓια κάθε pvt σε φύλλα ("Sheet1"). Συγκεντρωτικοί πίνακεςpvt.ClearTableΕπόμενο pvtΤέλος υπο

Loop Through Tables

Αυτή η διαδικασία θα περάσει σε κάθε πίνακα στο Sheet1, διαγράφοντας τον καθένα.

12345678 Υπο ForEachTables ()Dim tbl Ως ListObjectΓια κάθε tbl σε φύλλα ("Sheet1"). ListObjectstbl. ΔιαγραφήΕπόμενο tblΤέλος υπο

Loop Through Items in Array

Αυτή η διαδικασία θα κάνει βρόχο σε κάθε στοιχείο σε έναν πίνακα, θα εμφανίσει κάθε τιμή σε ένα πλαίσιο msg,

12345678910 Sub ForEachItemInArray ()Dim arrValue As VariantΕλαφρύ στοιχείο ως παραλλαγήarrValue = Πίνακας ("Στοιχείο 1", "Στοιχείο 2", "Στοιχείο 3")Για κάθε στοιχείο σε arrValueΣτοιχείο MsgBoxΕπόμενο ΣτοιχείοΤέλος υπο

Loop Through Numbers

Αυτή η διαδικασία θα πραγματοποιήσει βρόχο σε κάθε αριθμό σε έναν πίνακα, θα εμφανίσει κάθε τιμή σε ένα πλαίσιο msg,

12345678910111213 Υπο ForEachNumberInNumbers ()Dim arrNumber (1 έως 3) Ως ακέραιος αριθμόςDim num As VariantarrNumber (1) = 10arrNumber (2) = 20arrNumber (3) = 30Για κάθε αριθμό σε arrNumberMsgbox ΑριθΕπόμενο αριθΤέλος υπο

Για κάθε Loop Builder

Τα παραδείγματα σε αυτό το άρθρο δημιουργήθηκαν με το Loop Builder στο δικό μας Πρόσθετο VBA: AutoMacro.

ο Loop Builder καθιστά πολύ εύκολη τη δημιουργία κώδικα για την περιστροφή των αντικειμένων. AutoMacro περιέχει επίσης πολλά άλλα Γεννήτριες κώδικα, μια εκτεταμένη Βιβλιοθήκη κωδικών, και ισχυρό Εργαλεία κωδικοποίησης.

Για καθένα - Αν

Μπορείτε επίσης να χρησιμοποιήσετε το If Statements within Loops για να ελέγξετε εάν τα αντικείμενα πληρούν ορισμένα κριτήρια, εκτελώντας μόνο ενέργειες σε εκείνα τα αντικείμενα που πληρούν τα κριτήρια. Ακολουθεί ένα παράδειγμα περιήγησης σε κάθε κελί σε μια περιοχή:

Για κάθε κελί σε εύρος - Αν

1234567891011121314 Sub If_Loop ()Dim Cell ως RangeΓια κάθε κελί σε εμβέλεια ("A2: A6")Αν Cell.Value> 0 ΤότεCell.Offset (0, 1) .Value = "Θετικό"ElseIf Cell.Value <0 ΤότεCell.Offset (0, 1) .Value = "Αρνητικό"ΑλλούCell.Offset (0, 1) .Value = "Zero"Τέλος εανΕπόμενο κελίΤέλος υπο

Για κάθε κοινό παράδειγμα

Κλείσιμο όλων των βιβλίων εργασίας

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

123456789 Sub CloseAllWorkbooks ()Dim wb Ως βιβλίο εργασίαςΓια κάθε wb Σε βιβλία εργασίαςwb. Κλείσιμο SaveChanges: = TrueΕπόμενο wbΤέλος υπο

Απόκρυψη όλων των φύλλων

Αυτή η διαδικασία θα αποκρύψει όλα τα φύλλα εργασίας.

12345678 Sub HideAllSheets ()Dim ws Ως φύλλο εργασίαςΓια κάθε ένα σε φύλλαws.Visible = xlSheetHiddenΕπόμενο wsΤέλος υπο

Απόκρυψη όλων των φύλλων

Αυτή η διαδικασία θα εμφανίσει όλα τα φύλλα εργασίας.

12345678 Υπο UnhideAllSheets ()Dim ws Ως φύλλο εργασίαςΓια κάθε ένα σε φύλλαws.Visible = xlSheetVisibleΕπόμενο wsΤέλος υπο

Προστατέψτε όλα τα φύλλα

Αυτή η διαδικασία θα προστατεύσει όλα τα φύλλα εργασίας.

12345678 Sub ProtectAllSheets ()Dim ws Ως φύλλο εργασίαςΓια κάθε ένα σε φύλλαws.Protect Password: = "…"Επόμενο wsΤέλος υπο

Κατάργηση προστασίας όλων των φύλλων

Αυτή η διαδικασία θα προστατεύσει όλα τα φύλλα εργασίας.

12345678 Sub UnprotectAllSheets ()Dim ws Ως φύλλο εργασίαςΓια κάθε ένα σε φύλλαws.Usprotect Password: = "…"Επόμενο wsΤέλος υπο

Διαγραφή όλων των σχημάτων σε όλα τα φύλλα εργασίας

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

123456789101112 Sub DeleteAllShapesOnAllWorksheets ()Dim Sheet As WorksheetDim Shp As ShapeΓια κάθε ένα σε φύλλαΓια κάθε Shp In ws.ShapesShp. ΔιαγραφήΕπόμενο ShpΕπόμενο wsΤέλος υπο

Ανανέωση όλων των Συγκεντρωτικών Πίνακες

Αυτή η διαδικασία θα ανανεώσει όλους τους Συγκεντρωτικούς Πίνακες σε ένα φύλλο.

12345678 Sub RefreshAllPivotTables ()Dim pvt As PivotTableΓια κάθε pvt σε φύλλα ("Sheet1"). Συγκεντρωτικοί πίνακεςpvt. Ανανέωση πίνακαΕπόμενο pvtΤέλος υπο

Χρήση για καθένα στην Access VBA

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

123456789 Sub RemoveAllTables ()Dim tdf Ως TableDefDim dbs As DatabaseΟρίστε dbs = CurrentDbΓια κάθε tdf Σε dbs.TableDefsDoCmd.DeleteObject tdf.NameΒρόχοςΟρισμός dbs = ΤίποταΤέλος υπο

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

wave wave wave wave wave