VBA Find ohne Sonderzeichen?

...komplette Frage anzeigen

2 Antworten

Mit:

suchString = "aus" Range("B1:B1500").Find(suchString, LookAt:=xlPart)

würde alles gefunden, wo überhaupt ein *aus* in der Zelle vorkommt, egal was davor oder dahinter steht.

Hilft Dir das?
Oder habe ich Dich falsch verstanden?

Vielen Dank für die schnelle Antwort

Das Problem ist, dass es mit der ganzen Zelle vergleichen soll, da es auch Zellen mit ganzen Sätzen gibt, in denen "aus," vorkommt. 

0
@rolf777

Dann muss ich doch nochmal genauer nachfragen.
Du suchst also nach Zellen in den entweder "aus" oder "aus," steht?
Und sonst nichts?
Oder doch noch etwas anderes? Wie sind die Bedingungen genau.
Für obiges:

Sub aus()
Dim suchString1 As String
Dim suchString2 As String
Dim rngGefunden As Range
suchString1 = "aus"
suchString2 = "aus,"
Set rngGefunden = Range("B1:B1500").Find(suchString1, LookAt:=xlWhole)
If rngGefunden Is Nothing Then _
Set rngGefunden = Range("B1:B1500").Find(suchString2, LookAt:=xlWhole)
Debug.Print rngGefunden.Address
End Sub
0
@Oubyi

P.S.: Oder - wenn auch andere Zeichen nach dem aus stehen können - halt

suchString2 = "aus?"

wie MarcoLutz vorschlägt.

0
@Oubyi

ich fürchte, dass der zweite Teil  nur geht, wenn man alle aus am Ende nach Findung jedesmal eliminiert hat!

Bei der Lösung von MarcoLutz würde auch Maus (mit Leerzeichen oder . dahinter), Krause, Banause, baust, Faust, kaust, saust,..zerzaust,  genauso uvam ansprechen (mit xlpart).

Da Sonderzeichen ganz allgemein angesprochen wurden, habe ich folgendes Konzept in Angriff genommen (beliebig viele definierte Sonder- oder andere Zeichen):

  • 'Dim Suchstring, Findestring ' ggf. weitere, zB für Adressenliste
  • Findestring =Range("B1:B1500").Find(suchString, LookAt:=xlPart).Value
  • If Len(Findestring) = 3 Then 'goto Sprungmarke
  • If Len(Findestring) > 3 Then
  • Select Case Right(Findestring, 1)
  • Case ",", ";", ".", ":", "_" '(zu definierende Aufzählung)
  • 'End Select: goto Sprungmarke 'gibt es auch ein Exit Select?
  • 'End Select
  • End If
  • 'ggf gefundene Adressen listen, wie in diesem Zusammenhang zu findnext?


Ich steh aber sowohl mit find/findnext wie mit Select Case auf Kriegsfuß und schaffe es deshalb nicht, das zu integrieren. Wenn Du es für sinnvoll hältst: vllt kannst Du das i'wie ausschlachten?

1
@Iamiam

Bevor ich mich da "reinknie", warte ich erst mal ab, ob sich der FS überhaupt noch für seine Frage interessiert und auf meine Nachfragen antwortet. Sonst ist das zu frustrierend und besonders interessant finde ich die Aufgabenstellung auch nicht, sodass ich das für MICH weiter verfolgen würde.

0
@Oubyi

P.S.:
Exit Select gibt es nicht (nur Exit Sub und Exit For), macht aber auch imho keinen Sinn. Sobald eine Case-Bedingung erfüllt ist, springt VBA automatisch zu End Select, ohne die weiteren Bedingungen abzuarbeiten.
Ist also anders als in JAVA, wo bei switch jedesmal ein "Break" gesetzt werden muss.

1

Hallo,

versuch's mal mir "aus?".

Was möchtest Du wissen?