Option Compare innerhalb einer Funktion ändern?

  • #1
A

Ace_NoOne

Bekanntes Mitglied
Themenersteller
Dabei seit
07.04.2002
Beiträge
403
Reaktionspunkte
0
Ort
Germany
Hallo zusammen,

da ich keine Excel-Funktion finden konnte, die überprüft, ob ein String (Nadel) in einem anderen (Heuhaufen) enthalten ist, habe ich mir die folgende Funktion geschrieben:
Code:
Function InStr(haystack As String, needle As String)
  If haystack Like * & needle & * Then
    InStr = True
  Else
    InStr = False
  End If
End Function
Das Problem ist, dass die Art des Vergleichs von Option Compare abhängt. Wenn ich jedoch versuche, das über einen weiteren Parameter (caseSensitive, boolean) innerhalb der Funktion zu bestimmen, erhalte ich die folgende Fehlermeldung: Compile error: Invalid inside procedure.
Klar, Options sind nur auf Modulebene erlaubt - aber es muss doch eine Möglichkeit geben, das dynamisch zu verändern!?

Für Hilfe wäre ich dankbar...


UPDATE:
Gerade ist mir aufgefallen, dass diese Funktion in Verbindung mit dem AutoFilter zu sehr starker CPU-Auslastung führt.
Ich hatte mir eine zusätzliche Spalte angelegt, in der Werte aus zwei Spalten mit meiner Funktion verglichen werden und wollte dann per AutoFilter die FALSE-Resultate ausblenden. Das führt jedoch dazu, dass Excel über zwei, drei Minuten nicht ansprechbar ist - was wohl an der Zeilenanzahl (ca. 24.000) liegt.
Tja, dann kann ich das wohl vergessen. :-\
Zur Erklärung: Ich brauche diese Funktion, weil man mit AutoFilter nur maximal zwei Bedingungen angeben kann...
 
  • #2
Hallo,

Zur Erklärung: Ich brauche diese Funktion, weil man mit AutoFilter nur maximal zwei Bedingungen angeben kann...

wieviel Auswahlmöglichkeiten der Autofilter bietet, weiß ich nicht, nimm doch den Spezialfilter (Es sei denn, du willst mit VBA unbedingt etwas eigenes basteln).

Die Vorgehensweise ist in der Hilfe von Excel recht gut beschrieben. Im Hilfefenster Spezialfilter eingeben.

Beispiele für Spezialfilterkriterien
Spezialfilterkriterien können mehrfache Suchbedingungen für eine einzelne Spalte, mehrfache Suchkriterien für mehrere Spalten sowie Suchbedingungen beinhalten, die von einer Formel als Ergebnis geliefert werden.
 
  • #3
Hi, die Excel-Funktion, die du suchst, heißt Finden, ist allerdings von der Syntax her genau umgekehrt wie InStr, nämlich =FINDEN(Nadel;Heuhaufen). Diese Funktion berücksichtigt Groß- und Kleinschreibung, wenn du das nicht willst, musst du sie z.B. so ändern: =FINDEN(GROSS(Nadel);GROSS(Heuhaufen)). Lg, Oliver
 
  • #4
Oh my -! :|
Da ich mit den Spezialfiltern nicht hinkam, habe ich mittlerweile einen relativ komplizierten Weg eingeschlagen; die Excel-Tabelle in Access öffnen und eine entsprechende SQL-Anfrage benutzen.
Aber das ist natürlich ein ziemlicher Umweg; wenn's mit dieser (wirklich schlecht benannten) Funktion klappt, ist's ja prima. Die ersten Versuche sehen schon sehr vielversprechend aus - also vielen, vielen Dank!!
 
Thema:

Option Compare innerhalb einer Funktion ändern?

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben