Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1852to1856
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

Application.Match

Application.Match
25.10.2021 08:59:56
Thomas
Hallo an alle,
ich habe etwas komisches festgestellt und wollte mal nachfragen, ist das so oder mach ich was verkehrt ?
Ich suche mit unten gezeigtem Code in der ersten Spalte einen Wert und lasse mir dann, in dieser Zeile in den nächsten vier freien Spalten etwas eintragen..
Funktionierte auch erst mal, bis ich in Spalte A weitere Zahlen einfügte, nun schrieb er mir die Werte irgendwo hin... bis ich zufällig rausfand, dass die Werte in Spalte A nicht sortiert waren... Nach einer Sortierung von a-z war alles wieder gut... ich muss sagen, dass verwirrt mich ein wenig... sollte es nicht egal sein wo und in welcher Reihenfolge die Werte in Spalte A stehen ?
Die Funktion sucht doch nach einen eindeutigen Wert und schreibt dann rechts in die erste freie Spalte einen Wert. Da sollte es doch egal sein was vorher oder nachher kommt ? Oder ?
Zur Info es gibt in Spalte A keine doppelten Werte

Private Sub CommandButton1_Click()
Dim findZeile As String, letzteSpalte As String
With Worksheets("Tabelle1")
findZeile = Application.Match(ComboBox1, .Columns(1))
letzteSpalte = .Cells(findZeile, Columns.Count).End(xlToLeft).Column
.Cells(findZeile, letzteSpalte + 1) = "1"
.Cells(findZeile, letzteSpalte + 2) = "2"
.Cells(findZeile, letzteSpalte + 3) = "3"
.Cells(findZeile, letzteSpalte + 4) = "4"
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.Match
25.10.2021 09:28:41
Daniel
Hi
es gibt von Application.Match 3 verschiedene Varianten, welche über den 3. Parameter gesteuert werden.
die Unterschiede sind:
0: exakte Übereinstimmung des Suchbegriffs ist für ein Ergebnis erforderlich, die durchsuchte Liste kann unsortiert sein
1 bzw -1: exakte Übereinstimmung des Suchbegriffs ist nicht erforderlich, ist der Suchbegriff nicht in der Liste vorhanden, wird der nächstkleinere Wert aus der Liste als Ergebnis verwendet. Die Liste muss jedoch aufsteigend (1) oder absteigend (-1) sortiert sein.
Man braucht den dritten Parameter nicht angeben und kann in weglassen. In diesem Fall kommt die Variante mit 1 zur Anwendung.
Wendet man die Variante 1/-1 auf eine unsortierte Liste an, so bekommt man zwar ein Ergebnis, aber das ist Unsinn.

der Unterschied zwischen den Varianten liegt in der Suchmethode.
Variante 0 geht die Liste von oben nach unten durch, bis es einen Übereinstimmung von Suchwert und Listenwert gibt.
Variante 1 vergleicht den Suchbegriff mit dem Wert der sich in der Mitte der Liste befindet und entscheidet dann, ob der Suchbegriff in der oben oder unteren Hälfte der Liste sein muss. Dann wiederholt es diesen Vorgang mit dieser Hälfte der Liste solange, bis nur noch ein Wert übrig bleibt.
Gruß Daniel
Anzeige
AW: Application.Match
25.10.2021 10:02:50
Thomas
Ok... das erklärt es. Danke hier für.
AW: Versuch es....
25.10.2021 09:31:57
hary
Moin
.... mit dem dritten Parameter und findZeile As Long

Dim findZeile As Long, letzteSpalte As String
With Worksheets("Tabelle1")
findZeile = Application.Match(1, .Columns(1), 0)
gruss hary
AW: Versuch es....
25.10.2021 10:04:08
Thomas
Danke, das wäre meine nächste Frage gewesen. Wo schreibe ich den 3. Parameter hin.
AW: Versuch es....
25.10.2021 10:13:29
hary
Moin
Hab ich doch schon gemacht. ;-))
Es ist die Null

Application.Match(1, .Columns(1), 0)
gruss hary
AW: Versuch es....
25.10.2021 10:19:06
Thomas
Ich weiß... ;-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige