Σύνοψη
Αυτό το άρθρο περιέχει δείγματα διαδικασιών Visual Basic for Applications της Microsoft που μπορείτε να χρησιμοποιήσετε για να εργαστείτε με διάφορους τύπους πινάκων.
Περισσότερες πληροφορίες
Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για απεικόνιση, χωρίς εγγύηση εκφρασμένη ή σιωπηρή. Αυτό περιλαμβάνει, μεταξύ άλλων, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να εξηγήσουν τις λειτουργίες μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παρέχουν επιπλέον λειτουργικότητα ή διαδικασίες κατασκευής σύμφωνα με τις συγκεκριμένες απαιτήσεις σας. ΣΗΜΕΙΩΣΗ: Στις διαδικασίες Visual Basic for Applications, οι λέξεις μετά την απόστροφο (') είναι σχόλια.
Για να συμπληρώσετε έναν πίνακα και, στη συνέχεια, να τον αντιγράψετε σε ένα φύλλο εργασίας
-
Ανοίξτε ένα νέο βιβλίο εργασίας και εισαγάγετε ένα φύλλο λειτουργικής μονάδας της Visual Basic.
-
Πληκτρολογήστε τον παρακάτω κώδικα στο φύλλο λειτουργικής μονάδας.
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
Επιλέξτε Φύλλο1.
-
Στο μενού Εργαλεία, τοποθετήστε το δείκτη του ποντικιού στην επιλογή Μακροεντολή και, στη συνέχεια, κάντε κλικ στην επιλογή Μακροεντολές.
-
Στο παράθυρο διαλόγου Μακροεντολή, κάντε κλικ στην επιλογή Sheet_Fill_Array και, στη συνέχεια, κάντε κλικ στην επιλογή Εκτέλεση.
Για να λάβετε τιμές από ένα φύλλο εργασίας και να συμπληρώσετε τον πίνακα
-
Πληκτρολογήστε τιμές στο Φύλλο1 στα κελιά A1:A10.
-
Σε ένα φύλλο λειτουργικής μονάδας της Visual Basic, πληκτρολογήστε τον παρακάτω κώδικα:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Επιλέξτε Φύλλο1.
-
Στο μενού Εργαλεία, τοποθετήστε το δείκτη του ποντικιού στην επιλογή Μακροεντολή και, στη συνέχεια, κάντε κλικ στην επιλογή Μακροεντολές.
-
Στο παράθυρο διαλόγου Μακροεντολή, κάντε κλικ στην επιλογή from_sheet_make_array και, στη συνέχεια, κάντε κλικ στην επιλογή Εκτέλεση.
Για να μεταβιβάσετε και να λάβετε έναν πίνακα
-
Σε ένα φύλλο λειτουργικής μονάδας, πληκτρολογήστε τον παρακάτω κώδικα:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Επιλέξτε Φύλλο1 και επισημάνετε την περιοχή A1:A10.
-
Στο μενού Εργαλεία, τοποθετήστε το δείκτη του ποντικιού στην επιλογή Μακροεντολή και, στη συνέχεια, κάντε κλικ στην επιλογή Μακροεντολές.
-
Στο παράθυρο διαλόγου Μακροεντολή, κάντε κλικ στην επιλογή pass_array και, στη συνέχεια, κάντε κλικ στην επιλογή Εκτέλεση.
Για να συγκρίνετε δύο πίνακες
-
Δημιουργήστε δύο καθορισμένες περιοχές στο Φύλλο1. Ονομάστε τη μία περιοχή1 και την άλλη περιοχή2.
Για παράδειγμα, επισημάνετε την περιοχή κελιών A1:A10 και ονομάστε την περιοχή1. επισημάνετε την περιοχή κελιών B1:B10 και ονομάστε την περιοχή2. -
Πληκτρολογήστε τον παρακάτω κώδικα στο φύλλο λειτουργικής μονάδας.
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
Επιλέξτε Φύλλο2.
-
Στο μενού Εργαλεία, τοποθετήστε το δείκτη του ποντικιού στην επιλογή Μακροεντολή και, στη συνέχεια, κάντε κλικ στην επιλογή Μακροεντολή.
-
Στο παράθυρο διαλόγου Μακροεντολή, κάντε κλικ στην επιλογή compare_two_array και, στη συνέχεια, κάντε κλικ στην επιλογή Εκτέλεση.
Θα δείτε ένα πλαίσιο μηνύματος για κάθε σύγκριση.
Για να συμπληρώσετε έναν δυναμικό πίνακα
-
Σε ένα φύλλο λειτουργικής μονάδας, πληκτρολογήστε τον παρακάτω κώδικα:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
Στο μενού Εργαλεία, τοποθετήστε το δείκτη του ποντικιού στην επιλογή Μακροεντολή και, στη συνέχεια, κάντε κλικ στην επιλογή Μακροεντολές.
-
Στο παράθυρο διαλόγου Μακροεντολή, κάντε κλικ στην επιλογή fill_array και, στη συνέχεια, κάντε κλικ στην επιλογή Εκτέλεση.
ΣΗΜΕΙΩΣΗ: Η αλλαγή της μεταβλητής "number_of_elements" θα καθορίσει το μέγεθος του πίνακα.