folgender Code funktioniert, wenn ich die Daten aus ARR02 an ARR03 übergebe:
ARR03Dat(COUNTER, 1) = ARR02Dat(i, 1)
Aber wenn ich die Daten von ARR01 an ARR03 übergeben will:
ARR03Dat(COUNTER, 1) = ARR01Dat(i, 1)
bekomme ich den Laufzeitfehler 9.
Die Ursprungsdaten, die ich in die Arrays ARR01Dat und ARR02Dat einlese sind idenditisch.
Wer findet den Fehler? Danke und Gruß vom Lutz
Sub test01()
Dim i As Long
Dim COUNTER As Long
COUNTER = 1
' ARR01 zur Aufnahme der Daten aus tbl daten1 '
Dim ARR01Dat As Variant
Dim ARR01Zmax As Long
Dim ARR01Smax As Long
' maximale Anzahl Spalten '
ARR01Smax = 8
' Ermittlung Anzahl Zeilen '
tbl01.Activate
Range("A1").End(xlDown).Activate
ARR01Zmax = ActiveCell.Row
Application.Goto Reference:=Range("A1"), Scroll:=True
' Array mit Daten befüllen ohne Überschrift '
With tbl01
ARR01Dat = .Range(.Cells(2, 1), .Cells(ARR01Zmax, ARR01Smax))
End With
' ARR02 zur Aufnahme der Daten aus tbl daten2 '
Dim ARR02Dat As Variant
Dim ARR02Zmax As Long
Dim ARR02Smax As Long
' maximale Anzahl Spalten '
ARR02Smax = 8
' Ermittlung Anzahl Zeilen '
tbl02.Activate
Range("A1").End(xlDown).Activate
ARR02Zmax = ActiveCell.Row
Application.Goto Reference:=Range("A1"), Scroll:=True
' Array mit Daten befüllen ohne Überschrift '
With tbl02
ARR02Dat = .Range(.Cells(2, 1), .Cells(ARR02Zmax, ARR02Smax))
End With
' leeres ARR03 anlegen mit fester Größe: 20.000 Zeilen und 8 Spalten '
Dim ARR03Dat(1 To 20000, 1 To 8) As Variant
' Anzahl Zeilen im Direktbereich ausgeben '
Debug.Print UBound(ARR01Dat)
Debug.Print ARR01Zmax
Debug.Print UBound(ARR02Dat)
Debug.Print ARR02Zmax
Debug.Print UBound(ARR03Dat)
Debug.Print "counter alt: " & COUNTER
' Daten aus ARR01 an ARR03 übergeben '
For i = 1 To ARR01Zmax Step 1
ARR03Dat(COUNTER, 1) = ARR01Dat(i, 1)
COUNTER = COUNTER + 1
Next i
Debug.Print "counter neu: " & COUNTER
' Daten in tbl ausgabe löschen '
With tbl03
.Range(.Cells(2, 1), .Cells(20000, 8)).ClearContents
End With
' Daten in tbl ausgabe ausgeben '
With tbl03
.Range(.Cells(2, 1), .Cells(ARR01Zmax, ARR01Smax)).Value = ARR01Dat
End With
tbl03.Activate
End Sub