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

Array über string auswählen

Array über string auswählen
28.04.2008 09:53:51
Henrik
Hallo liebe Experten,
wieder einmal benötige ich Eure Hilfe.
Folgendes Problem:
...
Betrieb_Laufzeit_Wochentag = Betrieb_Start_Wochentag & "_bis_" & Betrieb_Ende_Wochentag
ZEI_Test = 7
SPL_Test = 6
...
Mo_bis_Mo = Array(1, 0, 0, 0, 0, 0, 0)
Mo_bis_Di = Array(1, 2, 0, 0, 0, 0, 0)
Mo_bis_Mi = Array(1, 2, 3, 0, 0, 0, 0)
...
For Zae_Wochentag = 0 To 6
!! 1) Wochentag_aktuell = Betrieb_Laufzeit_Wochentag(Zae_Wochentag)
!! 2) 'Wochentag_aktuell = Mo_bis_Mo(Zae_Wochentag)
Workbooks(ABM_1).Worksheets(ABB_1).Cells(ZEI_Test + Zae_Wochentag, SPL_Test) = Wochentag_aktuell
Next Zae_Wochentag
Die FOR Schleife funktioniert mit Zeile !! 2) einwandfrei. Mit Zeile !! 1) leider nicht, obwohl Betrieb_Laufzeit_Wochentag="Mo_bis_Mo" angezeigt wird.
Hat jemand eine Idee?
Danke schonmal im voraus.
Henrik

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

Betreff
Datum
Anwender
Anzeige
AW: Array über string auswählen
28.04.2008 10:09:10
Renee
Hi Henrik,
1. Solltest du Code möglichst mit dem (Zitat) Tag versehen, damit er im Forum besser lesbar ist.
2. Kannst du nicht eine Variable (vom Typ Array) die als Mo_bis_Mo benannt ist, im VBA-Code plötzlich INDIREKT über eine andere Variable (vom Typ String) mit Namen Betrieb_Laufzeit_Wochentag addressieren. Da fehlt einiges an grundsätzlichem Programmierverständnis!
Erklär dein Problem / Anforderung nochmals (vielleicht ohne Code)!
GreetZ Renée

AW: Array über string auswählen
28.04.2008 10:38:00
Henrik
Hallo Renee,
1) war bis dato nie ein problem
2) richtig erkannt. wie dir sicherlich nicht entgangen ist steht unter Level: VBA bescheiden. also fehlt mir in der tat programmierverständnis. deswegen stelle ich ja auch hier eine frage.
Hallo alle anderen,
Also nochmal mein Problem:
in Worten:
In einen Modul definiere ich mehrere Arrays. Diese Arrays möchte ich (wie Renee richtig erkannt hat) über eine Variable ansprechen (ob String oder sonst wie weiß ich eben nicht!).
Meine Arrays werden bei direkter Ansprache Wert für Wert korrekt in die Zellen übergeben. (siehe Auszug aus dem Code: Zeile !! 2) )
Der Fehler tritt nicht auf wenn ich händisch "Mo_bis_Mo" hinschreibe. Der Fehler ritt auf wenn ich "Mo_bis_Mo" als Variable (string bis jetzt. vielleicht gehts anders!?) [Betrieb_Laufzeit_Wochentag] definiere, die sich aus anderen Variablen (die hier nicht relevant sind) zusammensetzt.
Auszug aus dem Code:
..
Betrieb_Laufzeit_Wochentag = Betrieb_Start_Wochentag & "_bis_" & Betrieb_Ende_Wochentag
ZEI_Test = 7
SPL_Test = 6
...
Mo_bis_Mo = Array(1, 0, 0, 0, 0, 0, 0)
Mo_bis_Di = Array(1, 2, 0, 0, 0, 0, 0)
Mo_bis_Mi = Array(1, 2, 3, 0, 0, 0, 0)
...
For Zae_Wochentag = 0 To 6
!! 1) Wochentag_aktuell = Betrieb_Laufzeit_Wochentag(Zae_Wochentag)
!! 2) 'Wochentag_aktuell = Mo_bis_Mo(Zae_Wochentag)
Workbooks(ABM_1).Worksheets(ABB_1).Cells(ZEI_Test + Zae_Wochentag, SPL_Test) = Wochentag_aktuell
Next Zae_Wochentag
...
Frage:
Wieso funktioniert FOR Schleife nicht mit Zeile !! 1) ?
(Bitte keine Antworten wie es nicht geht, sondern mir eine Möglichkeit aufzeigen. Wenn es gar nicht geht, bitte ich um Aufklärung.)
Danke nochmal für Euer Bemühen.
Henrik

Anzeige
AW: Array über string auswählen
28.04.2008 11:08:41
ede
Hallo Henrik,
verstehe zwar nicht so richtig was Du eigentllich machen willst. Dei Code funktioniert nicht, weil die Variable Betrieb_Laufzeit_Wochentag kein Array ist!
Hier mal ein Lösungsansatz für Dein Beispiel:
Mo_bis_Mo = Array(1, 0, 0, 0, 0, 0, 0)
Mo_bis_Di = Array(1, 2, 0, 0, 0, 0, 0)
Mo_bis_Mi = Array(1, 2, 3, 0, 0, 0, 0)
For Zae_Wochentag = 0 To 6
Select Case Betrieb_Laufzeit_Wochentag
Case "Mo_bis_Mo"
Wochentag_aktuell = Mo_bis_Mo(Zae_Wochentag)
Workbooks(ABM_1).Worksheets(ABB_1).Cells(ZEI_Test + Zae_Wochentag, SPL_Test) = Wochentag_aktuell
Case "Mo_bis_Di"
Wochentag_aktuell = Mo_bis_Di(Zae_Wochentag)
Workbooks(ABM_1).Worksheets(ABB_1).Cells(ZEI_Test + Zae_Wochentag, SPL_Test) = Wochentag_aktuell
Case Else
End Select
Next Zae_Wochentag
gruss

Anzeige
THX. Mit Case funktioniert es.
28.04.2008 12:45:00
Henrik
Danke für Eure Antworten.
Ich probiers mit Case.

AW: Array über string auswählen
28.04.2008 11:09:35
Renee
Hi Henrik,
1. Für mich schon.
2. Hab ich dir schon beantwortet. Hier nochmal:
Du kannst Elemente in einem eindimensionalen Array nur über dessen Index referenzieren!
Du kannst Elemente einen mehrdimensionalen Array nur über dessen Indices referenzieren!
Folglich: Benutze anstelle 3er Arrays einen mehrdimensionalen Array.
VBA hat auch eine ausführliche Hilfe. Sonst hilft dir vielleicht:
Guckst Du: Felder - Arrays (1) - Einführung und LBound/UBound
GreetZ Renée
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige