Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Public Array definieren mit variabler Anzahl

Public Array definieren mit variabler Anzahl
18.11.2018 01:53:57
Jonathan
Hallo zusammen,
ich habe ein Problem:
ein als public definiertes Array besitzt eine von einer Tabelle abhängige Anzahl von Einträgen. Nun kann ich eine Variable mit der Anzahl der Zeilen nur in einer Sub erstellen, nicht aber "ganz oben" im Code (wie heißt der Bereich eigentlich?).
Lese ich das Array neu ein und versuche, es vorher mit

ArrZeilen = Sheets("Bestellungen").Range("bestellungen").Rows.Count
ReDim Preserve Arr(ArrZeilen, 47)

neu zu dimensionieren, erhalte ich die Fehlermeldung, dass das Array bereits dimensioniert wurde...
Wie kann ich die Anzahl der Einträge nun variabel gestalten?
Danke an Euch

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Public Array definieren mit variabler Anzahl
18.11.2018 03:50:52
Gerd
Moin :-)
Mit Redim Preserve kann man nur die letzte(rechte) Dimension eines Array ändern.
Deklariere dieses auf der Modulebene z.B. Public Arr As Variant
Die erste Dimensionierung erfolgt in einer Prozedur bspw. mit
Redim Arr(0 To 47, 0 To 9)
Gruß Gerd
AW: Public Array definieren mit variabler Anzahl
18.11.2018 18:13:30
Jonathan
Hi Gerd, danke für deine Hilfe - leider erhalte ich auf diesem Wege beim ersten Einlesen des Arrays eine Fehlermeldung "Index außerhalb des gültigen Bereichs"...
Public Arr as Variant
Sub einlesen
Dim iCounter, iRows, i As Integer
Dim rng As Range
Dim strFirst As String
Set Bereich = Sheets("Bestellungen").Range("bestellungen")
iRows = Bereich.Rows.Count
Erase Arr
For iCounter = 2 To iRows + 1
With Sheets("Bestellungen")
For i = 1 To 16
Arr(iCounter - 1, i) = .Cells(iCounter, i).Value
Next i
End With
next iCounter
End Sub

Anzeige
AW: Public Array definieren mit variabler Anzahl
19.11.2018 09:21:57
Daniel
Hi
du musst das Variant-Array arr schon noch dimensioneren, bevor du es verwendest:
Public Arr as Variant
Sub einlesen
Dim iCounter, iRows, i As Integer
Dim rng As Range
Dim strFirst As String
Set Bereich = Sheets("Bestellungen").Range("bestellungen")
iRows = Bereich.Rows.Count
Redim Arr(1 to iRows, 1 to 16)
For iCounter = 2 To iRows + 1
With Sheets("Bestellungen")
For i = 1 To 16
Arr(iCounter - 1, i) = .Cells(iCounter, i).Value
Next i
End With
next iCounter
End Sub
wobei in deinem Fall sowohl die Redimensionerung als auch die Schleife unnötig sind, da man in VBA einen Zellbereich direkt einer Variantvariable zuweisen kann und VBA dann automatisch die Dimensionierung als 2-D-Array mit der Basis 1 (erster Index = 1) vornimmt:
Public arr as Variant
Sub einlesen
Dim iCounter, iRows, i As Integer
Set Bereich = Sheets("Bestellungen").Range("bestellungen")
iRows = Bereich.Rows.Count
Arr = Sheets("Bestellungen").Cells(2, 1).resize(iRows, 16).Value
End Sub

Anzeige

13 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige