Arrayhandling in VBA

26/03/2010 - 15:13 von Norbert Harz | Report spam
Hallo allerseits,

ich hab mal 'ne Verstàndnisfrage.
Ich weiß nicht genau, wie ich folgendes lösen kann:

Ich lege zuerst einen benutzerdefinierten Datentyp fest:
Type ArrayTest
VName As String
Name As String
GebDatum As Date
End Type

Dim MatrixTest(1 To 10) As ArrayTest

Nun habe ich aber eine Matrix mit 10 Namen, die ich auf einen Rutsch
einlesen will. ich möchte aber nicht so was bauen:
For i=1 to 10
MatrixTest.VName(i) = Zeile1Spalte1
MatrixTest.Name(i) = Zeile1Spalte2
MatrixTest.GebDatum(i) = Zeile1Spalte3
Next i

Sondern ich möchte (da es nicht nur drei Eintràge sind), so was in der
Art bauen:

For i=1 to 10
For j=1 to 3
MatrixTest(j, i) = ZeileI_SpalteJ
Next j
Next i

'Simple' Frage: Geht das irgendwie..? ;-)

Danke,
Norbert
Bitte nur in die Newsgroup antworten.
Bei PM bitte nospam durch info ersetzen.
 

Lesen sie die antworten

#1 Peter Schleif
26/03/2010 - 15:45 | Warnen spam
Norbert Harz schrieb am 26.Mrz.2010 15:13 Uhr:

ich möchte aber nicht so was bauen:

MatrixTest.VName(i) = Zeile1Spalte1
MatrixTest.Name(i) = Zeile1Spalte2
MatrixTest.GebDatum(i) = Zeile1Spalte3



Das würde auch nicht gehen. Wenn dann so:

MatrixTest(i).VName = Cells(i, "A")
MatrixTest(i).Name = Cells(i, "B")
MatrixTest(i).GebDatum = Cells(i, "C")


Sondern ich möchte (da es nicht nur drei Eintràge sind), so was in der
Art bauen:

For i=1 to 10
For j=1 to 3
MatrixTest(j, i) = ZeileI_SpalteJ
Next j
Next i

'Simple' Frage: Geht das irgendwie..? ;-)



Sub test()
Dim i As Integer
Dim j As Integer
Dim MatrixTest(1 To 10, 1 To 3) As Variant

For i = 1 To 10
For j = 1 To 3
MatrixTest(i, j) = Cells(i, j)
Next
Next
End Sub

Peter

Ähnliche fragen