Πώς να αντιγράψετε μια σειρά στο Excel VBA

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

Αντιγραφή μιας σειράς στο Excel VBA είναι το είδος του πράγματος που είναι πραγματικά χρήσιμο το Excel VBA. Για παράδειγμα, μπορεί να θέλετε να έχετε ένα αρχείο όλων των αποδείξεων σας με ημερομηνία, λογαριασμό, κατηγορία, πάροχο, το προϊόν / υπηρεσία και το κόστος εισάγονται μία γραμμή κάθε φορά, όπως εμφανίζονται - μια περίπτωση εξελισσόμενης λογιστικής και όχι στατική λογιστική. Για να γίνει αυτό, πρέπει να μπορείτε να αντιγράψετε μια σειρά από ένα φύλλο εργασίας σε άλλο.

Ένα δείγμα προγράμματος Excel VBA που αντιγράφει μια σειρά από ένα φύλλο εργασίας σε άλλο - χρησιμοποιώντας μόνο τρεις στήλες για απλότητα - περιέχει:

  • Μια στήλη άλφα για κείμενο
  • Μια αριθμητική στήλη - δημιουργείται αυτόματο ποσό στο φύλλο εργασίας στόχου
  • Μια στήλη ημερομηνίας - συμπληρώνεται αυτόματα η τρέχουσα ημερομηνία και ώρα
instagram viewer

Σκέψεις για τη σύνταξη κώδικα Excel VBA

Για να ενεργοποιήσετε ένα συμβάν που αντιγράφει τη σειρά, πηγαίνετε με το πρότυπο - ένα κουμπί φόρμας κουμπιού. Στο Excel, κάντε κλικ στην επιλογή Εισαγωγή στην καρτέλα Προγραμματιστής. Στη συνέχεια, επιλέξτε το στοιχείο ελέγχου φόρμας κουμπιών και σύρετε το κουμπί όπου θέλετε. Το Excel εμφανίζει αυτόματα ένα παράθυρο διαλόγου για να σας δώσει την ευκαιρία να επιλέξετε ένα macro που ενεργοποιείται από το συμβάν κλικ στο κουμπί ή για τη δημιουργία ενός νέου.

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

Κωδικοποίηση για να αντιγράψετε μια σειρά χρησιμοποιώντας το Excel VBA

Sub Add_The_Line () Dim currentRow ως ακέραια φύλλα ("Φύλλο1") Επιλέξτε CurrentRow = Εύρος ("C2") Τιμή Γραμμές (7). Αντιγραφή φύλλων ("Φύλλο2") Επιλέξτε γραμμές (τρέχουσα γραμμή) .Επιλέξτε ActiveSheet. Επικολλήστε την ημερομηνία Ημερομηνία ως Ημ / νία = Τώρα () Κύτταρα (currentRow, 4) .Value = Κύτταρα CStr (theDate) (currentRow + 1, 3) .Επιτρέψτε το Dim rTotalCell ως Set Range rTotalCell = _ Sheets ("Sheet2" Γραμμές. Count ("C")) Τέλος (xlUp) .Φάση (1, 0) rTotalCell = Φύλλο εργασίας. Sum _ (Εύρος ("C7", rTotalCell. Μετατόπιση (-1, 0))) Φύλλα ("Φύλλο1") Εύρος ("C2"). 

Αυτός ο κώδικας χρησιμοποιεί xlUp, έναν "μαγικό αριθμό", ή πιο τεχνικά μια απαριθμημένη σταθερά, η οποία αναγνωρίζεται από τη μέθοδο End. Η αντιστάθμιση (1,0) μετακινεί απλά μια σειρά στην ίδια στήλη, οπότε το καθαρό αποτέλεσμα είναι να επιλέξετε το τελευταίο κελί στη στήλη C.

Με λέξεις, η δήλωση λέει:

  • Μεταβείτε στο τελευταίο κελί στη στήλη C (ισοδύναμο με το End + Down Arrow).
  • Στη συνέχεια, επιστρέψτε στο τελευταίο μη χρησιμοποιούμενο κελί (ισοδύναμο με το End + Up Arrow).
  • Στη συνέχεια, ανεβείτε ένα ακόμη κελί.

Η τελευταία δήλωση ενημερώνει τη θέση της τελευταίας σειράς.

Το VBA είναι πιθανότατα πιο δύσκολο από το VB.NET επειδή πρέπει να γνωρίζετε και τα δύο αντικείμενα VB και Excel VBA. Η χρήση του xlUP είναι ένα καλό παράδειγμα του είδους της εξειδικευμένης γνώσης που είναι κρίσιμο για να είναι σε θέση να γράψει μακροεντολές VBA χωρίς να ψάχνει μέχρι τρία διαφορετικά πράγματα για κάθε δήλωση που κωδικοποιείτε. Η Microsoft έχει σημειώσει μεγάλη πρόοδο στην αναβάθμιση του επεξεργαστή του Visual Studio για να σας βοηθήσει να καταλάβετε τη σωστή σύνταξη, αλλά ο επεξεργαστής VBA δεν έχει αλλάξει πολύ.

instagram story viewer