VBA Matrix - Δημιουργία & Περισσότερα

Αυτό το σεμινάριο θα σας δείξει πώς να δημιουργήσετε μια μήτρα χρησιμοποιώντας έναν πίνακα στο VBA.

Ένας πίνακας είναι ένας ορθογώνιος πίνακας αριθμών με τον ίδιο αριθμό γραμμών και στηλών. Μπορείτε να δημιουργήσετε έναν πίνακα στο VBA συμπληρώνοντας μεταβλητές πίνακα και χρησιμοποιώντας βρόχους VBA.

Δημιουργία μήτρας στο VBA

123456789101112131415 Sub CreateSimpleMatrix ()Dim matrix () Ως ακέραιοςDim x, i, j, k Ως ακέραιος αριθμός"μειώστε ξανά το μέγεθος του πίνακαReDim matrix (1 έως 3, 1 έως 3) Ως ακέραιοςx = 1Για i = 1 έως 3Για j = 1 έως 3μήτρα (i, j) = xx = (x + 1)Επόμενο jΕπόμενο iΤο αποτέλεσμα επιστροφής στο φύλλο με τη μίαΕύρος ("A1: C3") = μήτραΤέλος υπο

Η εκτέλεση της παραπάνω διαδικασίας θα επιστρέψει έναν απλό πίνακα στο εύρος ("A1: C3") στο φύλλο εργασίας σας.

Μετατρέψτε το διάνυσμα μονής σειράς σε μήτρα

Εξετάστε τη στήλη των αριθμών παρακάτω. Μπορεί σε κάποιο στάδιο να θέλετε να μετατρέψετε μια στήλη αριθμών σε πίνακα.

Χρησιμοποιώντας την παρακάτω συνάρτηση, μπορούμε να δημιουργήσουμε έναν πίνακα από τη λίστα αριθμών.

123456789101112131415161718192021 Συνάρτηση Create_Matrix (Vector_Range As Range, No_Of_Cols_in_output As Integer, No_of_Rows_in_output As Integer) As VariantReDim Temp_Array (1 προς No_Of_Cols_in_output, 1 To No_of_Rows_in_output)Dim No_Of_Elements_In_Vector As IntegerDim Col_Count As Integer, Row_Count As IntegerNo_Of_Elements_In_Vector = Vector_Range.Rows.Count«Εξαλείψτε τις συνθήκες NULLΕάν το Vector_Range δεν είναι τίποτα, τότε βγείτε από τη λειτουργίαΕάν No_Of_Cols_in_output = 0 Τότε Έξοδος από τη λειτουργίαΕάν No_of_Rows_in_output = 0 Τότε Έξοδος από τη λειτουργίαΕάν No_Of_Elements_In_Vector = 0 Τότε Έξοδος από τη λειτουργίαΓια Col_Count = 1 Προς No_Of_Cols_in_outputΓια Row_Count = 1 Προς No_of_Rows_in_outputTemp_Array (Col_Count, Row_Count) = Vector_Range.Cells (((No_of_Rows_in_output) * (Col_Count - 1) + Row_Count), 1)Επόμενο Row_CountΕπόμενο Col_CountCreate_Matrix = Temp_ArrayΛειτουργία Τέλους

Μπορούμε να δημιουργήσουμε τον πίνακα στο φύλλο Excel, καλώντας την παραπάνω συνάρτηση.

123 Sub ConvertToMatrix ()Εύρος ("C1: H2") = Create_Matrix (Range ("A1: A10"), 2, 6)Τέλος υπο

Μετατρέψτε μια μήτρα σε ένα διάνυσμα μονής σειράς

Εναλλακτικά, μπορεί να θέλετε να μετατρέψετε μια μήτρα σε μία γραμμή. Εξετάστε την παρακάτω μήτρα.

Χρησιμοποιώντας την παρακάτω συνάρτηση, μπορούμε να το μετατρέψουμε σε έναν πίνακα μονής διάστασης.

12345678910111213141516171819202122 Συνάρτηση Create_Vector (Matrix_Range As Range) As VariantDim No_of_Cols As Integer, No_Of_Rows As IntegerDim i As IntegerDim j ως ακέραιος«σηκώστε τις γραμμές και τις στήλες από τη μήτραNo_of_Cols = Matrix_Range.Columns.CountNo_Of_Rows = Matrix_Range.Rows.CountReDim Temp_Array (No_of_Cols * No_Of_Rows)«Εξαλείψτε τις συνθήκες NULLΕάν το Matrix_Range δεν είναι τίποτα, τότε βγείτε από τη λειτουργίαΕάν No_of_Cols = 0 Τότε Έξοδος από τη λειτουργίαΕάν No_Of_Rows = 0 Τότε Έξοδος από τη λειτουργία«βρόχος μέσω του πίνακα - το πρώτο στοιχείοΓια j = 1 έως No_Of_Rows"βρόχος τώρα στο δεύτερο στοιχείοΓια i = 0 σε No_of_Cols - 1«εκχώρηση σε έναν προσωρινό πίνακα μιας διάστασηςTemp_Array ((i * No_Of_Rows) + j) = Matrix_Range. Cells (j, i + 1)Επόμενο iΕπόμενο jCreate_Vector = Temp_ArrayΛειτουργία Τέλους

Τώρα μπορούμε να καλέσουμε αυτήν τη συνάρτηση χρησιμοποιώντας την παρακάτω διαδικασία.

1234567891011 Sub GenerateVector ()Dim Vector () ως παραλλαγήDim k ως ακέραιοςDim No_of_Element«πάρε τον πίνακαVector = Create_Vector (Φύλλα ("Φύλλο1"). Εύρος ("A1: D5"))"βρόχο μέσα από τον πίνακα και συμπληρώστε το φύλλοΓια k = 0 Προς UBound (Διάνυσμα) - 1Φύλλα ("Sheet1"). Range ("G1"). Offset (k, 0). Value = Vector (k + 1)Επόμενο κΤέλος υπο

Αυτή η διαδικασία θα επιστρέψει το ακόλουθο αποτέλεσμα.

Χρησιμοποιώντας το WorksheetFunction.MMULT για να δημιουργήσετε έναν πίνακα μήτρας

Εξετάστε το ακόλουθο υπολογιστικό φύλλο.

Μπορούμε να χρησιμοποιήσουμε την παρακάτω διαδικασία για να υπολογίσουμε το ποσό των τόκων για το παραπάνω δίκτυο με βάση το επιτόκιο και το ποσό που το άτομο θέλει να δανειστεί.

123456789101112 ΥποχρήσηMMULT ()Ελαττώστε το εύρος τιμώνDim rngAmtLoan As RangeΑμυδρό Αποτέλεσμα () Ως Παραλλαγή«συμπληρώστε τα αντικείμενα της περιοχής μαςΟρισμός rngIntRate = Εύρος ("B4: B9")Ορισμός rngAmtLoan = Εύρος ("C3: H3")"χρησιμοποιήστε τον τύπο MMULT για να συμπληρώσετε τον πίνακα αποτελεσμάτωνΑποτέλεσμα = WorksheetFunction.MMult (rngIntRate, rngAmtLoan)"συμπληρώστε το φύλλοΕύρος ("C4: H9") = ΑποτέλεσμαΤέλος υπο

Θα παρατηρήσετε στο παραπάνω φύλλο, ότι η παραπάνω διαδικασία συμπληρώνει τα κελιά με τιμές και όχι με τύπους - βλέπε C4 στο παραπάνω γράφημα - έχει την τιμή 200 σε αυτήν, όχι τύπο. Χρησιμοποιώντας το Φύλλο εργασίας η μέθοδος επιστρέφει πάντα μια στατική τιμή στο φύλλο εργασίας και όχι έναν τύπο. Αυτό σημαίνει ότι σε περίπτωση αλλαγής του επιτοκίου ή του ποσού του δανείου, οι αντίστοιχες τιμές στο συμπληρωμένο πίνακα ΔΕΝ ΘΑ αλλαγή.

Αντί να χρησιμοποιήσετε το WorksheetFunction.MMULT, μπορείτε να χρησιμοποιήσετε το VBA για να εφαρμόσετε τη συνάρτηση MMULT σε ένα κελί χρησιμοποιώντας το FormulaArray μέθοδος.

123 Sub InsertMMULT ()Εύρος ("C4: H9"). FormulaArray = "= MMULT (B4: B9, C3: H3)"Τέλος υπο

Παρατηρήστε ότι τώρα, όταν συμπληρωθεί το υπολογιστικό φύλλο, χρησιμοποιείται ένας τύπος στα κελιά.

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave