Χρησιμοποιήστε Visual Basic για να ταξινομήσετε ένα μικρό τραπέζι . Ξεκινήστε πληκτρολογώντας τον ακόλουθο πίνακα σε κύτταρα G8 στο H11 στο Φύλλο 1 :
όνομα πελάτη , λαμβάνοντας balanceZephyr Ανεμομηχανές , 5Arondale Γραφεία, - 10Bubble Gumballs , 30
Μετά την εισαγωγή των δεδομένων , επιλέξτε και να αρχίσει την καταγραφή της μακροεντολής ( Developer > Record Macro ) . Ονομάστε το μακρο MySort . Ταξινόμηση ( Δεδομένα> Ταξινόμηση από το Α έως το Ω ) τα επιλεγμένα δεδομένα για την πρώτη στήλη , και να σταματήσει την καταγραφή της μακροεντολής .
Εικόνων Replay η Macro
Η
Δοκιμάστε να χρησιμοποιήσετε τη μακροεντολή να καταφύγουν μια διαφορετική περιοχή : αντιγράψετε και να επικολλήσετε τον πίνακα των πελατών σε άλλη περιοχή του φύλλου εργασίας , και επιλέξτε τη νέα σειρά . Επανάληψη της μακροεντολής ( Developer > Μακροεντολές > MySort ) , και να παρατηρήσετε το φαινόμενο: τα δεδομένα δεν ήταν ταξινομημένο . Ψάξτε για το πρόβλημα στο κώδικα της Visual Basic που δημιουργήθηκε από την εγγραφή μακροεντολών σας . Αρχίστε την πλοήγηση προς τον κώδικα : . Πατήστε Alt - F8 , επιλέξτε MySort μακροεντολή σας , και κάντε κλικ στο κουμπί Επεξεργασία
Μέσα λειτουργίας MySort , παρατηρήσετε αυτή τη δήλωση :
ActiveWorkbook.Worksheets ( "Sheet1 » ) Sort.SortFields.Add κλειδί : . = Range ( " G8 " ) ...
Και μια δήλωση λίγες γραμμές μετά :
SetRange Range ( ". C9 : D12 " )
και οι δύο αυτές καταστάσεις είναι η πηγή του προβλήματος ? ότι είναι οι λόγοι για τους οποίους MySort αποτυγχάνει να ταξινομήσετε το επιλεγμένο εύρος : η Visual Basic καταγραφής μακροεντολών hard-coded την περιοχή δεδομένων ( " C9 : D12 " και " G8 " ) για να ταξινομήσετε . Ο στόχος σας είναι να αντικαταστήσετε τα hardcoded σειρές για να κάνει το είδος μακρο η τρέχουσα επιλογή
Η Χρησιμοποιείστε την Επιλογή Ακινήτου
Η
Συγκεκριμένα , η παράμετρος κλειδί : . = Εύρος ( «G8» ) ενημερώνει το Excel για να ταξινομήσετε τον πίνακα των πελατών με βάση τη στήλη «πελάτης» , η οποία ξεκινά από το κελί G8 . Για να αντικαταστήσετε αυτό το πρωτότυπο στήλη "πελάτης " με το ένα μέσα στο επιλεγμένο κείμενο , για να εξετάσει το ακίνητο επιλογή του αντικειμένου Application . Αυτή η ιδιότητα αναφέρεται στο εύρος των σήμερα επιλεγμένα κελιά . Αντικαταστήστε κλειδί : = Range ( " G8 " ) με αυτό : Κλειδί: = k . Θα καθορίσει k σε μια στιγμή
Η επόμενη hard-coded σειρά για να αντικαταστήσει συμβαίνει μερικές δηλώσεις προς τα κάτω : . . SetRange Range ( " G8 : H11 " ) . Η μέθοδος . SetRange δείχνει να το Excel το πλήρες φάσμα που θέλετε να ταξινομήσετε . Αντικαταστήστε SetRange Range ( " G8 : H11 » ) . Με αυτό : . " . SetRange r "
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα