Excel-VBA-Funktion drucken Sie ein array, um die Arbeitsmappe
Ich habe ein makro geschrieben, das dauert ein 2-dimensionales array, und "druckt" es entspricht Zellen in einer excel-Arbeitsmappe.
Ist es ein eleganter Weg, dies zu tun?
Sub PrintArray(Data, SheetName, StartRow, StartCol)
Dim Row As Integer
Dim Col As Integer
Row = StartRow
For i = LBound(Data, 1) To UBound(Data, 1)
Col = StartCol
For j = LBound(Data, 2) To UBound(Data, 2)
Sheets(SheetName).Cells(Row, Col).Value = Data(i, j)
Col = Col + 1
Next j
Row = Row + 1
Next i
End Sub
Sub Test()
Dim MyArray(1 To 3, 1 To 3)
MyArray(1, 1) = 24
MyArray(1, 2) = 21
MyArray(1, 3) = 253674
MyArray(2, 1) = "3/11/1999"
MyArray(2, 2) = 6.777777777
MyArray(2, 3) = "Test"
MyArray(3, 1) = 1345
MyArray(3, 2) = 42456
MyArray(3, 3) = 60
PrintArray MyArray, "Sheet1", 1, 1
End Sub
InformationsquelleAutor Zach | 2011-05-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf dem gleichen Thema wie die anderen Antworten, es einfach zu halten,
Range
tatsächlich bedeutet die Zuordnung zu seiner.Value
.InformationsquelleAutor chris neilsen
Erstellen Sie ein variant-array (am einfachsten durch Lesen von gleichem range in eine variant-variable).
Füllen Sie dann das array, und weisen Sie das array direkt zu dem Bereich.
Den variant-array wird am Ende als 2-D-matrix.
InformationsquelleAutor Lance Roberts
Eine elegantere Möglichkeit ist die Zuordnung, die das gesamte array auf einmal:
Aber watch out: es funktioniert nur bis zu einer Größe von etwa 8.000 Zellen. Excel wirft einen seltsamen Fehler. Die maximale Größe ist nicht festgelegt und unterscheidet sich sehr von Excel-installation auf Excel-installation.
InformationsquelleAutor Codo
Können Sie einen Bereich definieren, der die Größe des Arrays, und verwenden Sie die value-Eigenschaft:
InformationsquelleAutor Steve Mallory
Meine getestete version
InformationsquelleAutor Andrew Strathclyde
Als andere haben vorgeschlagen, die Sie direkt schreiben können, ein 2-dimensionales array in einen Bereich auf dem Blatt, aber wenn Ihr array eindimensionales dann haben Sie zwei Möglichkeiten:
Hier ist ein Beispiel der Darstellung der beiden Optionen:
Hinweis: Hierbei wird bewirkt, dass die Spalte-für-Spalte-Ausgang, um Zeile für Zeile die Ausgabe transponieren es wieder - hoffe, das macht Sinn.
HTH
InformationsquelleAutor Eddie Kumar