Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
888to892
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
888to892
888to892
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Array ein- und auslesen

Array ein- und auslesen
27.07.2007 18:45:16
Klaus
Hallo Leute
Aus einem Array speichere ich bestimmte Zahlenwerte in einer Variable:
For Exp 1 to 15
If x=y Then
BaNr = BaNr & ";" & B(Exp, 2)
End If
Next Exp
In "BaNr" steht dann z.B.: 15;13;7;3
Nun versuche ich aber diese Zahlenwerte in einem zweiten Array zu schreiben:
For Exp 1 to 15
If x=y Then
Bx(Exp) = B(Exp, 2)
End If
Next Exp
Beim Auslesen vom zweiten Array habe ich dann aber Probleme. In den Datenfeldern sind dann alle Werte vorhanden:
Bx(1) = 1
Bx(2) = 2
Bx(3) = 3
Bx(4) = 4
...
usw.
Erwartet habe ich aber:
Bx(1) = 0 oder "" (nix)
Bx(2) = 0 oder "" (nix)
Bx(3) = 3
Bx(4) = 0 oder "" (nix)
Bx(5) = 0 oder "" (nix)
Bx(6) = 0 oder "" (nix)
Bx(7) = 7
Bx(8) = 0 oder "" (nix)
Bx(9) = 0 oder "" (nix)
...
usw.
Ich weiß leider nicht was ich da falsch mache. Wahrscheinlich ist es was ganz banales.
Ich bedanke mich schonmal für jeden ernstgemeinten Tipp :-)
Gruss
Klaus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array ein- und auslesen
27.07.2007 19:02:00
Renee
Mazwara Klaus,
Darf man mal fragen, was den der Zweck des Codes sein soll?. Bei Deinem Code steig ich absolut nicht durch.
Deine erste Schlaufe füllt keinen Array ab, sondern einen String.
Deine zweite Schlaufe scheint einen eindimensionalen Array aus einem zweidimensionalen abzufüllen nur hat der zweidimensionale absolut nix mit der ersten Schlauf zu tun ?
Greetz Renee

AW: Array ein- und auslesen
27.07.2007 19:26:01
Klaus
Hi Renee

Deine erste Schlaufe füllt keinen Array ab, sondern einen String.


Hab' ich auch nicht gesagt.
In der ersten Schleife lese ich die Datenfelder der 2. Dimension eines Array's in eine Variable ein.
Dies dient nur zu Kontrollzwecken während des Edit's.
Ich möchte aber - nur bestimmte Datenfelder - der 2. Dimension eines Array's in ein anderes Eindimensionales Array einlesen, und aber auch wieder auslesen können. Siehe 2. und 3. Codeschnipsel.
Gruss Klaus

Anzeige
AW: Array ein- und auslesen
27.07.2007 19:27:30
Klaus
Sorry, Frage natürlich noch offen!

AW: Array ein- und auslesen
27.07.2007 20:06:34
Rudi
1.Das sieht nach einem Fehler bei der Dimensionierung des arrays aus. Stimmen die Datentypen?
2.Wenn es kein Zufall ist, dass der array-Wert mit der Position im array identisch ist (Variable EXP) dann speicherst du vielleicht nicht den Wert des arrays sondern EXP. Das wäre dann ein banaler Fehler....
Gruß -Rudi-

AW: Fehler gefunden
27.07.2007 20:28:22
Klaus
Es war soweit alles korrekt.
Allerdings muss ein Array auch mal "geleert" werden, wenn man es mehrfach hintereinander verwendet.
Das ist doch banal, oder !?
Vielen Dank für Eure Hilfe
Gruss Klaus

Anzeige
AW: Fehler gefunden
27.07.2007 21:09:00
Gerd
Hallo Klaus,
nur weil ich schon gebastelt hatte.
Und wie leerst Du die Datenfelder ? :-)

Sub test()
Dim BaNr As String, Var As Variant
Dim lngArrTestfelder() As Long
Dim lngMaxwert As Long
Dim i As Long, j As Long
'In "BaNr" steht dann z.B.: 15;13;7;3
BaNr = "15;13;7;3"
Var = Split(BaNr, ";")
For i = LBound(Var) To UBound(Var)
If Var(i) > lngMaxwert Then lngMaxwert = Var(i)
Next
ReDim lngArrTestfelder(1 To lngMaxwert)
For j = LBound(lngArrTestfelder) To UBound(lngArrTestfelder)
For i = LBound(Var) To UBound(Var)
If Var(i) = j Then lngArrTestfelder(j) = j
Next
Next
For j = LBound(lngArrTestfelder) To UBound(lngArrTestfelder)
MsgBox "lngArrTestfelder " & j & ":  " & lngArrTestfelder(j)
Next
End Sub


P.S. Wenn Du hier Helfer suchst, wäre es einfacher, den ganzen relevanten Code reinzustellen.
Gruß Gerd

Anzeige
AW: Fehler gefunden
27.07.2007 21:48:00
Klaus
Hi
Danke, dass Du Dir die Mühe gemacht hast. Aber es ging letztendlich nur um das Auslesen eines einfachen Array's. Deshalb war der vollständige Code auch nicht nötig. Ich hab' mich wohl malwieder total umständlich ausgedrückt. Meine anderen Beiträge der letzten 10 Jahre sind noch schlimmer :-(
Ein Array löscht man am schnellsten mit "Erase". In meinem Fall:
For Exp 1 to 15
Erase Bx
If x=y Then
Bx(Exp) = B(Exp, 2)
End If
Next Exp
Gruss Klaus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige