Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1348to1352
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

Array-Definition (1 To X) verlangt Konstante

Array-Definition (1 To X) verlangt Konstante
18.02.2014 20:43:07
S.
Hallo,
ich habe einen Benutzerdefinierten Datentyp angelegt und möchte per dynamisch angelegtem Array diesen Datentyp füllen; was so aussieht:
Option Explicit
Public hier0 As Workbook, hier1 As Worksheet, hier2 As Worksheet, hier3 As Worksheet
Type datenSatz
Name As String
Vorname As String
Wohnort As String
PLZ As Long
End Type
Sub Test()
Set hier0 = ThisWorkbook
Set hier1 = hier0.Worksheets(1)
Set hier2 = hier0.Worksheets(2)
Set hier3 = hier0.Worksheets(3)
Dim a As Integer, i As Integer
Dim ausgabe As Variant
a = hier2.Cells(Cells.Rows.Count, 1).End(xlUp).Row
Dim S(1 To a) As datenSatz
For i = 1 To a
S(i).Name = hier2.Cells(i, 1)
S(i).Vorname = hier2.Cells(i, 2)
S(i).Wohnort = hier2.Cells(i, 3)
S(i).PLZ = hier2.Cells(i, 4)
Next i
End Sub

Mein Problem taucht bei Dim S(1 To a) auf. Hier soll ich einen Konstante angeben, was ich aber nicht kann, da ich nicht genau weiss wie groß dass Array ist ...
Wie bekommt man sowas hin?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array-Definition (1 To X) verlangt Konstante
18.02.2014 21:05:52
Martin
Hallo "S",
die Größe eines Arrays kann nur mit einer Konstanten festgelegt werden. Sieh dir mal Redim Preserve an, damit kann - auch per Variable - die Array-Größe im Nachgang geändert werden.
Viele Grüße
Martin

ReDim allein reicht hier schon, ...
18.02.2014 22:52:53
Luc:-?
…M&S; ;-)
Dim S() As datenSatz
a = hier2.Cells(Cells.Rows.Count, 1).End(xlUp).Row
ReDim S(1 To a)

Gruß Luc :-?
Besser informiert mit …

AW: ReDim allein reicht hier schon, ...
20.02.2014 20:35:53
Achim
Hallo Luc:-?
Stimmt, funktioniert. Es ist mir zwar schleierhaft, warum die erste Zuweisung nicht genommen wird, aber die zweite mit ReDim dann funktioniert ..., aber okay, was soll's.
Danke

Anzeige
Deine Variante entsprach nicht der VBA-Syntax!
24.02.2014 21:54:31
Luc:-?
Gruß Luc :-?

noch was
19.02.2014 01:34:02
Erich
Hi Ultrakurzname,
wozu ist in
hier2.Cells(Cells.Rows.Count, 1).End(xlUp).Row
eigentlich das fett gedruckte Cells gut? Das ist nicht falsch, aber überflüssig.
Auch meist unnötig, aber sinnvoller ist
hier2.Cells(hier2.Rows.Count, 1).End(xlUp).Row
Dann wäre klar, dass es um die max. Zeilenzahl des Blattes hier2 geht.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige