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

InStr mit genauem Abgleich von Zahlen

InStr mit genauem Abgleich von Zahlen
21.11.2018 00:33:50
Zahlen
Hallo zusammen,
ich möchte in einem String nach dem Vorkommen einer Zahl suchen. Bei meinem Code werden aber auch Einträge gefunden, wenn diese nur ein Vorkommen des Suchstrings haben. Also suche ich hiermit zB nach der Zahl "1" werden auch die Zahlen "101", "110" usw gefunden:
ID = 1
For i = 1 To UBound(Arr)
If InStr(1, Arr(i, 1), ID, vbBinaryCompare) > 0 Then
'...
End If
Next iRowArrBest
Das sollte doch aber mit vbBinaryCompare nicht so sein, oder?
Danke für Eure hilfe!
LG, J

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nee, da irrst du, ...
21.11.2018 01:42:06
Luc:-?
…Jonathan;
d.h. nur, dass nach BinärCode (ASCII) vgln wird, also in der Reihenfolge und Form der ZeichenCodes. Das kannst du auch in der VBE-Hilfe unter Option Compare-Anweisung nachlesen. Das muss auch nicht angegeben wdn, da Option Compare Binary Standard ist und dieser bei Nicht-Angabe zu Instr übernommen wird.
Wenn du nach exakten Werten suchen willst, musst du auch die ZeichenUmgebung, seinen Kontext, festlegen. IdR sind das im Fließtext Leer- oder Satzzeichen, in ZahlenFeldern die ZahlGrenzen. Da es sich bei Instr um eine Text-vbFkt handelt, ist sie für letzteren Zweck eher ungeeignet. Hier würde sich eher der VglsOperator Like anbieten oder besser die direkte Suche nach genau dieser Zahl mit Application.Match oder WorksheetFunction.Match, wobei ersteres ggf Fehler 2043 (#NV) liefert (nur an Variant-Variable!) und letzteres in diesem Fall (des Nicht-Findens) einen Fehler verursacht, der aber abgefangen wdn kann (eine Variable bliebe dann leer).
Morhn, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
AW: Nee, da irrst du, ...
21.11.2018 04:37:09
Sulprobil
Hallo,
Es wäre schön, die genaue Aufgabenstellung zu kennen.
Wenn mann dies genau machen will, muss man wohl mit regulären Ausdrücken die Zahlen herausschälen, sie dann in Zahlen umwandeln und mit dem Wert 1 vergleichen.
1, 1.0, ,1.00 wären z. B. alles Treffer.
Viele Grüße,
Bernd P
Mit Match kann man übrigens auch mit Platz-...
21.11.2018 10:11:03
Luc:-?
…haltern suchen.
Luc :-?
AW: InStr mit genauem Abgleich von Zahlen
21.11.2018 07:56:17
Zahlen
Hi
Das BinaryCompare legt nur fest, ob bei der Suche Groß/Kleinschreibung berücksichtigt werden soll oder nicht.
Suchst du nach einer Ziffer, ist das egal.
Wenn du nach einer Zahl suchst, was vergleichbar ist mit der Suche nach einem ganzen Wort, so musst du das Trennzeichen, welches das Wort oder die Zahl von anderen Textbestandteilen trennt, mit in die Suche Einbeziehen und nicht nach "1" suchen, sondern nach " 1 ".
Um den Sonderfall "gesuchtes Wort steht am Anfang/Ende" auszuschließen, ergänzt man den durchsuchten Text ebenfalls um die Trennzeichen:
ID = " 1 "
IF Instr(" " & arr(i, 1) & " ", ID) > 0 Then
Sollte es verschiedene Trennzeichen geben, so müsstest du mit Replace diese vorher austauschen, so dass es nur ein Trennzeichen gibt oder ggf mit Like suchen:
If "[.,;: ] & ID & [.,;: ] Like " " & arr (i, 1) & " " then
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige