Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Application.Match nur für eindimensionale Arrays? | Herbers Excel-Forum


Betrifft: Application.Match nur für eindimensionale Arrays? von: Martin S.
Geschrieben am: 02.02.2010 12:17:32

Hallo,

mit "Application.Match(Suchwert,Array,0)" kann sehr schnell der Trefferindex in einem eindimensionalen Array ermittelt werden. Besteht die Möglichkeit "Application.Match(Suchwert,Array,0)" auch bei einem zweidimensionales Array (unter Angabe der zu durchsuchenden Dimension) anzuwenden?
Da das nur eine Frage aus persönlichem Interesse ist, brauche ich keine Alternativvorschläge. Für Antworten bin ich - wie immer - sehr dankbar!

Viele Grüße

Martin

  

Betrifft: geht nicht owT von: Rudi Maintaire
Geschrieben am: 02.02.2010 12:34:03




  

Betrifft: Schade! Aber vielen Dank für die schnelle Antwort! von: Martin S.
Geschrieben am: 02.02.2010 12:36:20

s.o.


  

Betrifft: Im Prinzip hat Rudi recht, aber es gibt... von: Luc:-?
Geschrieben am: 02.02.2010 13:20:47

...einen Trick, Martin,
du musst ein 1dimensionales aus dem 2dimensionalen Feld machen, indem du es zeilen(- bzw spalten-)weise mit geeigneten Trennzeichen zusammenfasst und dann beim Suchbegriff mit Jokerzeichen * arbeitest, wenn das möglich ist.
Gruß Luc :-?


  

Betrifft: dann kann man ja gleich ... von: Rudi Maintaire
Geschrieben am: 02.02.2010 13:23:11


...mit ner Schleife suchen. Was übrigens zeitlich unkritisch ist.

Gruß
Rudi


  

Betrifft: Für VBA ist das ja auch wirklich irrelevant,... von: Luc:-?
Geschrieben am: 02.02.2010 13:28:22

...Rudi,
aber um so interessanter für Formel-Puristen... ;-)
Gruß Luc :-?


  

Betrifft: In einer Formel ... von: Rudi Maintaire
Geschrieben am: 02.02.2010 13:43:16

... arbeitet man nicht wirklich oft mit Application.Match, Luc.

Gruß
Rudi


  

Betrifft: Warum so bierernst? Ich arbeite NIE mit... von: Luc:-?
Geschrieben am: 02.02.2010 14:08:23

...Application.Match, Rudi,
stets mit WorksheetFunction.Match und in solchen Fällen meist mit PgmZyklen. Meine Antwort zielte auch über den VBA-Tellerrand hinaus, womit ich dir nicht unterstellen wollte, du würdest diese FmlLösung nicht kennen! Du musst mir aber nicht unterstellen wollen, ich hätte an der Aufgabenstellung vorbei geantwortet (kann mir auch mal passieren!)... Ob das Ganze auch unter VBA Sinn machen könnte, hängt ja letztendlich von der Datenmenge und der Schnelligkeit der jeweiligen xlRoutinen ab...
Für VBA gäbe es natürlich noch einen anderen Weg, aus einem 2dimensionalen ein 1dimensionales Feld zu machen...
Gruß Luc :-?


  

Betrifft: AW: Warum so bierernst? Ich arbeite NIE mit... von: Rudi Maintaire
Geschrieben am: 02.02.2010 14:53:37

Hallo,
das sollte keine Kritik an dir sein.
Application.Match: Da sind wir genau unterschiedlich gepolt. Ich arbeite nie mit Worksheetfunction.Match, da dies bei Fehler einen Laufzeitfehler verursacht, hingegen Application.Match einen Fehlerwert zurück gibt.

Für VBA gäbe es natürlich noch einen anderen Weg, aus einem 2dimensionalen ein 1dimensionales Feld zu machen...

Du machst mich neugierig.

Gruß
Rudi


  

Betrifft: AW: Warum so bierernst? Ich arbeite NIE mit... von: wsp
Geschrieben am: 02.02.2010 15:33:45

WorksheetFunction.Match macht unter VBA folgenden Sinn :

in einer Funktion, die in einer Zellformel aufgerufen wird, gibt WorksheetFunction.Match eine brauchbare

Information - dagegen versagt irgendeinrange.cells.find ( What:= ... ) in diesem Kontext.



WSP


  

Betrifft: Siehste, und da ich fast nur udF für genau... von: Luc:-?
Geschrieben am: 02.02.2010 19:15:44

...diesen Einsatzzweck schreibe, WaSP,
habe ich Rudis Problem nicht, aber viell eher eines, wenn ich's anders machen würde... ;-)
Gruß Luc :-?


  

Betrifft: Ach, das ist nichts Besonderes,... von: Luc:-?
Geschrieben am: 02.02.2010 19:36:59

...Rudi... ;-)
Ich habe da so 'ne udF, die macht das eigentlich nur deshalb, weil ich damals zu faul war, mir die Mühe zu machen, die Elemente eines 2dimensionalen Feldes richtig anzuordnen. Da gibt's ja so Durchlauf­reihenfolge­unterschiede zwischen Xl u. VB — war mir damals zu viel, das auch noch zu berücksichtigen... (Nebenbei, die udF liefert einen Wertevektor in Form einer Matrixkonstanten → Einsatz in AUSWERTEN möglich.)
Interessanter finde ich die Möglichkeit, ein Feld aus 2 und mehr Vektoren paarig (und mehr) mit der Laufvariablen in For Each p In... durchlaufen zu können. Damit könnte man dann diese Paare (Gruppen) auch zusammenfassen (sogar mit Index): x(p(0)) = p(1) & ";" & p(2) & ";" p(3)...
Gruß Luc :-?
PS: Hatte nur 'nen Smilie vermisst; wäre deutlicher gewesen...


  

Betrifft: Danke, das ist eine interessante Lösung! von: Martin S.
Geschrieben am: 02.02.2010 13:24:01

s.o.


  

Betrifft: AW: Application.Match nur für eindimensionale Arrays? von: Beverly
Geschrieben am: 02.02.2010 15:56:08

Hi Martin,

meinst du so etwas:

Sub ArryAuslesen()
    Dim arrDaten() As Variant
    arrDaten = Array(Array("A", "B", "C", "D", "E"), Array(100, 200, 300, 400, 500))
    MsgBox Application.Match("B", arrDaten(0), 0)
    MsgBox Application.Match(500, arrDaten(1), 0)
End Sub


GrußformelBeverly's Excel - Inn


Beiträge aus den Excel-Beispielen zum Thema "Application.Match nur für eindimensionale Arrays?"