λογισμικό

* Γνώση Υπολογιστών >> λογισμικό >> Microsoft Access

Excel Συμβουλές Προγραμματισμός

Η γλώσσα scripting για το Microsoft Excel , Visual Basic , σας επιτρέπει να επεκτείνει την ήδη άφθονη σύνολο του Excel εργαλείων . Ωστόσο, η κωδικοποίηση άμεσα σε Visual Basic μπορεί να είναι δύσκολη, επειδή ορισμένες λειτουργίες ( όπως η διαλογή ) απαιτούν ρύθμιση διαφόρων παραμέτρων σε μια ακριβή fashion.You μπορεί να αποφύγει το χέρι - κωδικοποίησης εντελώς , αφήνοντας το πρόγραμμα καταγραφής μακροεντολών γράψει τον κώδικα για σας , αλλά αυτό δεν είναι πάντα καθαρό το αποτέλεσμα που επιδιώκετε . Η λύση είναι να συνδυάσει τα καλύτερα και των δύο κόσμων : χρησιμοποιεί μακροεντολές για να κάνουν το μεγαλύτερο μέρος κωδικοποίησης και ένα μικρό κομμάτι της κωδικοποίησης χέρι για να τελειώσει τη δουλειά . Ταξινόμηση ένα μικρό πίνακα
Η

Χρησιμοποιήστε 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 "

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα