Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1136to1140
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 in Array speichern

Array in Array speichern
Andreas
Hallo Herber Fans,
ich bin auf ein Problem gestoßen, welches ich bisher weder durch Probieren, noch durch Forums-/ Internetrecherche lösen konnte. Ich möchte ein Array in einem Array speichern.
Ich habe drei einzelne Arrays „arrSearchReferences1“ (1-3), in denen Suchbegriffe als Textstrings gespeichert werden. Diese drei Arrays sollen in einem globalen Array gespeichert werden. Dieses globale Array wird dann durchlaufen. In diesem Durchlauf trifft der Code dann auf ein im Array gespeichertes Array, welches die Strings enthält, nach denen gesucht werden soll. Wenn ein String gefunden wurde, wird ein Long Counter um eins erhöht und die lokale Schleife verlassen. Dann kommt das nächste Teilarray mit den nächsten Strings. Innerhalb eines Arrays mit Search Referenzen herrscht eine „ODER“ Logik. Innerhalb des globalen Arrays „arrSearch“ jedoch eine UND Logik. D.h. bei 3 Teilarrays muß ich drei Fund- Vorkommnisse gehabt haben, ansonsten wird die Zelle NICHT rot eingefärbt.
Die Suchlogik ist nicht das Problem. Das Problem ist, Array in Array zu speichern. Da habe ich derzeit überhaupt keine Idee ob und wie das gehen könnte.
Ich würde mich freuen, wenn das Thema bei anderen, erfahreneren Forumsteilnehmern auf Interesse stößt und sie sich die Sache einmal ansehen. (Der bisherige Code steht in „modSearch“)
https://www.herber.de/bbs/user/67942.xls
Vielen Dank und einen schönen Abend allen Excel Freunden noch,
Andreas Hanisch.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Array in Array speichern
11.02.2010 19:51:47
Gerd
Hallo Andreas!
'Muß ich es als Variant deklarieren?
Ja, das empfiehlt sich für solche Fälle, alles als Variant zu deklarieren.
Gruß Gerd
AW: Array in Array speichern
11.02.2010 20:09:40
Andreas
Hallo Gerd,
ich habe es testweise mal als Variant deklariert. Funktioniert leider nicht. Es scheint komplexer zu sein, als eine Umdeklaration.
Grüße, Andreas
Du musst es natürlich auch noch richtig...
12.02.2010 03:26:24
Luc:-?
...füllen, Andreas...!
Wenn du das getan hast, sollte es fktn!
Dim varFeld As Variant
varFeld = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9))
Referenzieren musst du das dann so...
varFeld(1)(2) liefert 6
Solche Felder setzt man vornehmlich dann ein, wenn die Anzahl der Elemente der Unterfelder (SubArrays) unterschiedlich sein kann, denn dann bekäme man keine reguläre Matrix zustande, es sei denn, man füllte die überzähligen Elemente mit 0 bzw "".
In deinem Fall würde es aber auch eine reguläre oder teilreguläre Matrix tun, also...
Dim strFeld(2, 2) As String und dann alle Elemente einzeln bzw...
Dim varFeld(2) As Variant und dann varFeld(0)...(2) mit den jeweiligen Feldern füllen.
Ansprache: strFeld(1, 2) liefert "6" — varFeld(1)(2) liefert 6
Noch idealer ist es, wenn man deine Vglsbegriffe, falls sie konstant sind, als...
Const varText As String = "alpha beta gamma/delta epsilon vau/zeta eta theta" *
deklariert und dann die Zuweisung wie folgt vornimmt...
varFeld = Array(Split(Split(varText, "/")(0), " "), Split(Split(varText, "/")(1), " "), Split(Split(varText, "/")(2), " ")
Der Vorteil ist, man hat alle signifikanten Suchbegriffe als eine Konstante am PgmAnfang und kann so sehr schnell und leicht einen ggf erforderlichen Austausch vornehmen.
Der Durchlauf einer solchen Variable ist bei gleicher Elementanzahl mittels 2er, ineinander­geschachtelter Zyklen vom For laufvar = anfangswert To endwert-Typ möglich. Bei unterschiedl Elementeanzahl der VglBegriff-Vektoren verwendet man besser den For Each element In feld-Typ, zumindest für den inneren Zyklus (ist ohnehin schneller).
Ein anderer Aspekt des Ganzen ist, dass du wohl einen Wahrheitswert erhalten möchtest. Die einzelnen, sich aus den Vgll ergebenden Boole'schen Werte könntest du natürlich auch in einem udTyp (benutzerdefinierter Variablentyp) zusammenfassen, dessen 3 Elemente einzeln per Or-Operation ermittelt und miteinander per And-Operation verknüpft stets True ergeben müssen. Wenn eines dieser 3 Elemente bei seiner Ermittlung schon False ergibt, können eigentlich sofort alle diesbzgl PgmZyklen abgebrochen wdn (Exit For-Bedingung!).
* Das sind die Namen der altgriech Symbole für die oben verwendeten Zahlen.
Viel Erfolg! Gruß Luc :-?
Anzeige
AW: Array in Array speichern
11.02.2010 20:10:14
Uduuh
Hallo,
erst mal arrSearch als Variant deklarieren.
Dim arrSearch(1 to 3)
Das mit der Zuweisungsschleife geht nicht. Musst du einzeln machen. Variablennamen kannst du nicht zusammenbasteln.
arrSearch(1)=arrSearchReferences1
arrSearch(2)=arrSearchReferences2
arrSearch(3)=arrSearchReferences3
Und arrSearchRefs nicht Seten!
For i = 1 To UBound(arrSearch, 1)
arrSearchRefs = arrSearch(i)
.......
Gruß aus’m Pott
Udo

AW: Array in Array speichern
11.02.2010 21:22:54
Andreas
Hallo Gerd L und Udo,
Vielen Dank Euch beiden für Eure Antworten. Es läuft nun astrein!!! Den Durchbruch haben Udos Hinweise gebracht, daß ich nicht mit 'SET' agieren kann und auch das die Zuweisungsschleife nicht geht. Nun werde ich noch ein wenig basteln, um die Werte vollflexibel von einem Worksheet einzulesen, so daß sich die Arraygrößen anpassen.
Tja, Array in Array erscheint mir dank Eurer Hilfe nun irgendwie "ganz logisch"... Wäre es ohne Euch aber nicht!
Habt Dank und noch einen schönen Abend,
Grüße aus Berlin, Andreas Hanisch
Anzeige
Hatte Udos AW leider übersehen,...
12.02.2010 03:31:34
Luc:-?
...Andreas,
aber viell nutzt dir mein Text doch auch noch... ;-)
Gruß Luc :-?
PS: Stammst du auch aus Berlin oder viell aus TF...?
AW: Hatte Udos AW leider übersehen,...
12.02.2010 08:21:00
Andreas
Hallo Luc :-?,
Da Dein Text sehr umfangreich und - wie ich es bei diesem Urheber auch kaum anders erwartet hätte - sehr fundiert ist, wird er sicher auch Berücksichtigung finden! Aber dazu muß ich ihn in Ruhe inhalieren und verstehen. Das wird schon. Wenn ich es heute schaffe, noch mit 'Array in Array' weiter zu experimentieren, werde ich morgen vermutlich schon das Wissen aus Deinem Text benötigen :). Also schon einmal Danke vorab und ein schönes Wochenende!
Grüße, Andreas
PS: Ja ich bin aus Berlin, derzeit bei leichtem Schneefall. Was ist denn 'TF'?
Anzeige
Findest du südlich direkt vor den Toren,...
12.02.2010 12:44:35
Luc:-?
...Andreas,
also nicht Teneriffa! Da hast du dann wohl einen Voll-Namensvetter...
Naja, die Bewohner des Spreewalds (sein Vorfeld gehört zu TF), denn da ist dein Familienname wohl her — auch als Hanusch, sind eben auch nicht alle zuhause sitzen geblieben... ;-)
Gruß Luc :-?
PS: Hier schneit's genauso!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige