51 Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3k Punkte)

Hallo,

ich habe in einem code die Speichervariable arrX() als puglic deklariert:

public arrx() as variant

sub test ()
dim arrx()
...........

userform.show

end sub

Allerdings erhalte ich den Fehler sobald in der userform auf diesen Speicher zugegriffen wird:

for k=lbound(arrX()) to ubound(arrX())
..

Hat jemand einen Tipp? Danke und Gruß A.

4 Antworten

0 Punkte
Beantwortet von m-o Profi (16.9k Punkte)
ausgewählt von halfstone
 
Beste Antwort

Hallo Andreas,

du darfst in deinem Makro test das Feld nicht noch einmal dimensionieren:

Public arrx() As Variant

Sub test()

Dim i As Long
ReDim arrx(5)

For i = 1 To 5
  arrx(i) = Cells(i, 1)
Next i

UserForm1.Show

End Sub

Dann klappt auch der Zugriff von der Userform aus:

Private Sub UserForm_Initialize()

For i = LBound(arrx) To UBound(arrx)
  ListBox1.AddItem arrx(i)
Next i

End Sub


Gruß

M.O.

+1 Punkt
Beantwortet von beverly_ Experte (1.4k Punkte)
Hi,

fülle das Array im Activate-Ereignis des UserForms und nicht im Standardmodul.

Bis später, Karin
0 Punkte
Beantwortet von
Hallo,

danke für eure tollen Tipps, damit klappt es.

VG A.
0 Punkte
Beantwortet von ahorn38 Experte (3k Punkte)
Hallo noch einmal,

ich habe jetzt das seltsame Phänomen, das der Code auf meinem Desktop läuft, auf meinem Laptop aber nicht. Dort erkennt er trotz public-Deklaration die Speichervariable arrX()( nicht. Hängt da vlt. irgend eine Einstellung?

Gruß A.
...