Hallo Rudol,
es gibt viele Arten ein Array zu füllen. Diese hier ist mir neu und nicht wirklich notwendig. Laut dieser Seite ist die Zeile Set ArrLst = CreateObject("System.Collections.ArrayList") richtig. Jedoch erhalte auch ich einen Automatisierungsfehler. Muss es denn unbedingt eine ArrayList sein? Das gute alte Collection Objekt tuts doch auch.
Sub ArrayListFuellen()
Dim ArrLst As New Collection
Dim lngZeile As Long
Dim lngZeileMax As Long
Dim p
Set Master = Sheets("Master") 'Diese Zeile zum Setzen der Variablen Master hat gefehlt
'wenn du Master bereits anderweitig gesezt hast kannst du
'auf diese Zeile auch verzichten.
With Master
lngZeileMax = .Range("Q" & .Rows.Count).End(xlUp).Row
'Array Füllen
For lngZeile = 2 To lngZeileMax
ArrLst.Add .Range("Q" & lngZeile).Value
Next lngZeile
End With
MsgBox ArrLst(5) 'Eine Zeile zum Auswerten hat auch gefehlt.
End Sub
oder du füllst einfach ein normales Array. Das geht u.a. zum Beispiel so:
Sub ArrayFuellen()
Dim arr As Variant
Set Master = Sheets("Master") 'Diese Zeile zum Setzen der Variablen Master hat gefehlt
'wenn du Master bereits anderweitig gesezt hast kannst du
'auf diese Zeile auch verzichten.
With Master
lngZeileMax = .Range("Q" & .Rows.Count).End(xlUp).Row
arr = .Range("Q2:Q" & lngZeileMax)
arr = Application.Transpose(arr)
End With
MsgBox arr(6) 'Eine Zeile zum Auswerten
End Sub
Gruß Mr. K.