Daten Einlesen und Ausgeben Laufzeit Fehler 9

06/01/2010 - 11:51 von RogHB346 | Report spam
Hallo NG
Was habe ich falsch in meinem Code ?
Das von mir verwendete Makro lautet:

Sub DatenEinlesen()
Dim vx As Variant
Dim i As Variant

vx = Range("a1:f1")

For i = 0 To 6
Cells(9, i) = vx(i) 'erzeugt Laufzeit Fehler 9
Next

End Sub

Danke für die Hilfe

Heinz
 

Lesen sie die antworten

#1 Andreas Killer
06/01/2010 - 12:19 | Warnen spam
On 6 Jan., 11:51, RogHB346 wrote:

Was habe ich falsch in meinem Code ?


Wie der Fehler 9 schon sagt: Index außerhalb des gültigen Bereichs

Das trifft hier gleich 3mal zu, denn
a.) ist vx ein 2dimensionales Array
b.) fàngt dieses nicht bei 0 an
c.) gibt es keine 0te Spalte bei Cells(9, i)

Markiere mal im VBA-Editor die Variable vx und drück Shift-F9 und
klick auf hinzufügen.
Dann klick irgendwo in die Sub DatenEinlesen und drück F8.

Nun kannst Du einen gelben Balken und im Überwachungsfenster sehen das
vx leer ist.
Drück weiter F8 bis sich vx àndert und schon siehst Du das es ein
Variant(1 to 1, 1 to 6) ist.

Wenn Du ein Range in ein Array einliest dann ist dieses immer
2dimensional, fàngt bei 1,1 an und hört bei Range.Rows.Count,
Range.Columns.Count auf.

Wenn Du ein Array in ein Range schreiben willst, dann muss der Range
nur die gleiche Größe wie das Array haben.

vx = Range("a1:f1")
Cells(9, 1).Resize(UBound(vx), UBound(vx, 2)) = vx

Andreas.

Ähnliche fragen