Μακροεντολή για εισαγωγή φύλλου εργασίας - Συμβουλές για το Excel

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

Το "Stuck in NJ" έκανε την ερώτηση αυτής της εβδομάδας:

Δημιουργώ ένα βιβλίο εργασίας του Excel που περιέχει γραφήματα με αριθμούς πωλήσεων. Το πρώτο φύλλο εργασίας του Excel αντιστοιχεί στην πρώτη περιοχή πωλήσεων της εταιρείας (π.χ. FL01.) Το όνομα της καρτέλας του φύλλου εργασίας (καθώς και το κελί A1) είναι ο αριθμός επικράτειας πωλήσεων FL01. Τα δεδομένα που οδηγούν τα γραφήματα είναι προς τα δεξιά (έξω από το εύρος εκτύπωσης που έχω ορίσει) και συμπληρώνονται από ένα άλλο βιβλίο εργασίας excel χρησιμοποιώντας το VLOOKUP με τον αριθμό περιοχής πωλήσεων FL01 στο κελί A1 ως κλειδί αναζήτησης. Πρέπει να προσθέσω στο βιβλίο εργασίας 76 πανομοιότυπα φύλλα εργασίας (ένα για κάθε περιοχή πωλήσεων) έτσι ώστε το όνομα καρτέλας και το κελί A1 κάθε φύλλου να ισούται με διαδοχικούς αριθμούς περιοχών πωλήσεων (π.χ. FL01, FL02, LK01, LK02.) Πώς μπορώ να το κάνω σε ένα αυτοματοποιημένος τρόπος;

Αυτό επιτυγχάνεται εύκολα με μια μακροεντολή VBA, αλλά επιτρέψτε μου να καλύψω την άκρη για να το κάνω χειροκίνητα. Μόλις ρυθμίσετε ένα φύλλο με μορφές μορφοποίησης και εκτύπωσης, μπορείτε εύκολα να αντιγράψετε το φύλλο κάνοντας δεξί κλικ στην καρτέλα για αυτό το φύλλο. Από το μενού που εμφανίζεται, επιλέξτε Μετακίνηση ή Αντιγραφή. Από το παράθυρο διαλόγου Μετακίνηση ή Αντιγραφή, επιλέξτε "(μετακίνηση στο τέλος)" και επιλέξτε το πλαίσιο "Δημιουργία αντιγραφής" και, στη συνέχεια, κάντε κλικ στο OK. Ένα αντίγραφο του φύλλου σας με μορφοποίηση θα προστεθεί ως νέο φύλλο εργασίας στο βιβλίο εργασίας σας. (Για να επιταχύνετε αυτήν τη διαδικασία, κρατήστε πατημένο το πλήκτρο Ctrl ενώ σύρετε την καρτέλα του φύλλου εργασίας προς τα δεξιά.) Συνήθως θέλετε να μετονομάσετε το φύλλο. Κάντε δεξί κλικ στη νέα καρτέλα, επιλέξτε μετονομασία και πληκτρολογήστε ένα νόημα όνομα.

Για να λειτουργήσει η μακροεντολή Excel, χρειάζεται μια λίστα περιοχών. Πριν γράψετε τη μακροεντολή, εισαγάγετε ένα νέο φύλλο σε αυτό το βιβλίο με το όνομα Δεδομένα. Στο κελί A1, εισαγάγετε τη 2η περιοχή πωλήσεων (FL02 στο παράδειγμά σας). Συνεχίστε να εισάγετε όλες τις περιοχές πωλήσεων κάτω από τη στήλη A. Μην αφήνετε κενές γραμμές.

Εισαγάγετε μια νέα μακροεντολή και αντιγράψτε αυτόν τον κωδικό:

Public Sub CopyIt() Sheets("Data").Select ' Determine how many territories are on Data sheet FinalRow = Range("A65000").End(xlUp).Row ' Loop through each territory on the data sheet For x = 1 To FinalRow LastSheet = Sheets.Count Sheets("Data").Select ThisTerr = Range("A" & x).Value ' Make a copy of Fl01 and move to end Sheets("FL01").Copy After:=Sheets(LastSheet) ' rename the sheet and set A1 = to the territory name Sheets(LastSheet + 1).Name = ThisTerr Sheets(ThisTerr).Select Range("A1").Value = ThisTerr Next x End Sub

Η μακροεντολή χρησιμοποιεί την εντολή Copy (). Που κάνει το ίδιο πράγμα με το να κάνετε κλικ στο Move ή Copy χειροκίνητα. Πριν κάνω κάθε αντίγραφο, ανακαλύπτω τον αριθμό των φύλλων χρησιμοποιώντας την ιδιότητα Sheets.Count. Ξέρω αν υπάρχουν 56 φύλλα και εισάγω ένα νέο φύλλο, θα αναφέρεται ως Φύλλα (57). Το βρίσκω κάπως απρόβλεπτο να μαντέψω πώς το Excel θα ονομάσει το νέο φύλλο, επομένως χρησιμοποιώ αριθμητικούς αριθμούς ευρετηρίου για να προσδιορίσω το φύλλο. Μόλις μετονομάσω το νέο φύλλο με "Sheets (LastSheet + 1) .Name = ThisTerr", έπειτα μπορώ να επιστρέψω στην προτιμώμενη μέθοδο αναφοράς του φύλλου χρησιμοποιώντας το όνομά του.

Σημειώστε ότι η λίστα περιοχών δεν πρέπει να περιέχει FL01 στη λίστα. Η προσπάθεια μετονομασίας ενός αντιγράφου ενός αντιγράφου FL01 με το ίδιο όνομα θα προκαλέσει σφάλμα στη μακροεντολή.

ενδιαφέροντα άρθρα...