Anzeige
Archiv - Navigation
800to804
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
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Array - Schreibweise ()

Array - Schreibweise ()
19.09.2006 20:36:13
IngoH
Hallo,
eine Nachfrage fürs' eigene Verstehen:
Ich habe diverse Puplic Array_SoWieSo as ...
definiert und dimensioniere und fülle die dann erst zur Laufzeit.
Alles Wunderbar...
Jetzt solpere ich in der Hilfe über folgenden Satz:
Die ReDim-Anweisung dient normalerweise zum Festlegen oder Ändern der Größe eines dynamischen Datenfeldes, das bereits formal mit einer Private-, Public- oder Dim-Anweisung und einem leeren Klammernpaar (ohne Indizes für die Dimensionen) deklariert wurde.
Hmm...leeres Klammerpaar...das habe ich bislang bei der Festlegung
nur des Namens nie verwendet, aber auch keine Probleme dadurch.
Ist das jetzt nur eine Formsache, weil "gehört sich so",
oder doch für irgend etwas wichtig,
über das ich noch nicht gestolpert bin...?
Gruß, Ingo

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array - Schreibweise ()
19.09.2006 20:44:15
Kurt
Hi,
"definiert und dimensioniere und fülle die dann erst zur Laufzeit."
Gib mal ein Beispiel.
mfg Kurt
AW: Array - Schreibweise ()
19.09.2006 20:49:05
Reinhard
Hi Ingo,
kapiert habe ich die Arrays eher nicht so :-) deshalb Frage noch offen.
Vielleicht bringt dich das weiter:
Option Explicit
Sub tt()
Dim Klein1(5), gross1(), klein2, gross2
'ReDim Klein1(7) 'bringt Fehler
ReDim gross1(10, 10, 10, 10)
ReDim klein2(7)
ReDim gross2(10, 10, 10, 10)
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: Array - Schreibweise ()
19.09.2006 21:01:19
IngoH
Hallo,
ich benötige globale Variablen und habe dafür ein eigenes Modul angelegt.
Die Array werden im gesamten Projekt gebraucht, ich weiß aber vorher nie,
um wie viele Daten es sich handeln wird.
Deswegen also in dem Modul Global
Public Arr_FzDaten As Variant
und später bei Aufruf der entsprechenden Sub..

Sub FzDatenInArrEinlesen()
'Anzahl Zeilen und Spalten ermitteln
i_rows = Workbooks(XLSFILE_FZDATEN). _
Worksheets("FzDaten").UsedRange.Rows.count
i_cells = Workbooks(XLSFILE_FZDATEN). _
Worksheets("FzDaten").UsedRange.Columns.count
'Array dimensionieren
ReDim Arr_FzDaten(i_rows, i_cells, 2)
'Daten in Array einlesen
For i_z = 1 To i_rows
For i_s = 1 To i_cells
Arr_FzDaten(i_z, i_s, 1) = Workbooks(XLSFILE_FZDATEN). _
Worksheets("FzDaten").Cells(i_z, i_s)
Next i_s
Next i_z
End Sub

Das wird doch jetzt wohl nicht falsch sein..? "schluck"
Anzeige
AW: Array - Schreibweise ()
19.09.2006 23:26:27
MichaV
Hallo,
dem Variant- Datentyp kannst Du alles mögliche nachträglich zuweisen, auch ein Datenfeld. Es ist also ein großer Unterschied, ob Du
Dim x as sowieso oder
Dim x as Variant schreibst.
Nur bei Variant sind die Klammern scheinbar unwichtig, weil mit DIM x as Variant erstmal garnix dimensioniert wird.

Sub varianten()
Dim x As Variant
Dim y() As Variant
Dim z() As Integer
Debug.Print TypeName(x), TypeName(y), TypeName(z)
ReDim x(5), y(5), z(5)
Debug.Print TypeName(x), TypeName(y), TypeName(z)
End Sub

Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Array - Schreibweise ()
19.09.2006 20:51:35
IngoG
Hallo Ingo,
wenn Du nicht vorher weisst, wieviele Feldeinträge Du benötigst (zB bei Usereingaben, Einlesen von Datensätzen etc), kannst Du entweder eine sehr große Grenze vorgeben, viel Speicherplatz verschwenden und hoffen, dass du damit auskommst oder...
...Du definierst Dein Array dynamisch und legst die Grenze für das Array ebenfalls erst zur Laufzeit fest.
Dies passiert eben über den Redim befehl.
Ich hoffe, das klärt Deine Frage
Gruß Ingo
PS eine Rückmeldung wäre nett...
AW: Array - Schreibweise ()
19.09.2006 21:06:39
IngoH
Hi Ingo,
richtig erkannt, ich weiß es vorher nicht - siehe meine andere Antwort.
Aber offensichtlich ist es rein bei der "Namensvergabe" egal,
ob ich Array as oder Array() as schreibe...?
Wie gesagt, die Hilfe schlägt die Version Array() vor, ich habe es bislang
immer ohne () gehalten und keine negativen Auswirkungen bemerkt.
Gruß, Ingo
Anzeige
AW: Array - Schreibweise ()
19.09.2006 21:33:57
EtoPHG
Hallo Ingo,
Die Schreibweise mit Klammern, bewirkt IMHO nichts, ausser lesbarkeit.
Sie funktioniert eh nur bei der DIM Anweisung, nicht aber bei einer Public Anweisung.
Gruss Hansueli
Das ist doch was ;-) Danke
19.09.2006 21:37:57
IngoH
...natürlich auch allen anderen Bemühten
Ingo
AW: Array - Schreibweise ()
19.09.2006 23:19:04
MichaV
Hallo,
Die Schreibweise mit Klammern, bewirkt IMHO nichts, ausser lesbarkeit.
ist das bei meinem XL2000 anders?

Sub gehtnicht()
Dim x As Integer
ReDim x(3)
End Sub


Sub geht()
Dim x() As Integer
ReDim x(3)
End Sub

Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Array - Schreibweise ()
19.09.2006 23:27:10
EtoPHG
Hallo Micha,
Richtig: Gilt für alle definierten Datentypen (Ausser VARIANT) bei einer
DIM Anweisung.
Bei einer PUBLIC kann ich aber einen (dynamischen) Array NUR über VARIANT bilden !
Es sei den, jemand verrät mir nen Trick, wie ich einen Integer-Array PUBLIC und DYNAMISCH (Re-Dimensionierbar) machen kann, Danke und
Gruss Hansueli
AW: Array - Schreibweise ()
19.09.2006 23:33:37
MichaV
Hallo Hans,

Bei einer PUBLIC kann ich aber einen (dynamischen) Array NUR über VARIANT bilden !
Es sei den, jemand verrät mir nen Trick, wie ich einen Integer-Array PUBLIC und DYNAMISCH (Re-Dimensionierbar) machen kann, Danke

hm, ich bin sicher, ich verstehe Dich nicht. Ist IMHO kein Problem, oder ist Dir das hier nicht dynamisch genug?

Sub eins()
ReDim dynamisch(42)
Debug.Print UBound(dynamisch)
Call zwei
End Sub
Sub zwei()
ReDim dynamisch(4711)
Debug.Print UBound(dynamisch)
Call eins
End Sub

Und im Modul steht:

Option Explicit
Public dynamisch() As Integer

Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Array - Schreibweise ()
19.09.2006 23:57:57
EtoPHG
Hallo Mischa,
Einverstanden, wenn die Public Anweisung im Modul steht.
Nicht aber wenn sie in einem Sheet steht !
Anyway it's bedtime... Good night!
Gruss Hansueli
AW: Array - Schreibweise ()
20.09.2006 00:04:28
MichaV
Hallo Hans,
Einverstanden, wenn die Public Anweisung im Modul steht.
Nicht aber wenn sie in einem Sheet steht !

...na das steht ja auch glasklar in der Hilfe ;o)
Danke für den Denkanstoß und Gute Nacht!
Gruß- Micha

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige