Die Find-Funktion in VBA (Visual Basic for Applications) ist eine sehr leistungsfähige Funktion, die es ermöglicht, Daten in einem bestimmten Bereich zu suchen. Hier sind die Parameter dieser Funktion:
-
What: Dies ist der erforderliche Parameter. Hierbei handelt es sich um den Wert, den Sie suchen. Es kann sich um einen String, eine Zahl, ein Datum oder einen Zellbezug handeln.
-
After: Dies ist ein optionaler Parameter. Dies ist die Zelle, nach der die Suche beginnt. Wenn dieser Parameter weggelassen wird, beginnt die Suche nach der ersten Zelle im Bereich.
-
LookIn: Dies ist ein optionaler Parameter. Es bestimmt, ob die Suche in Formeln, Werten oder Kommentaren stattfinden soll. Die Optionen sind xlFormulas (sucht in den Formeln), xlValues (sucht in den Werten) oder xlComments (sucht in den Kommentaren).
-
LookAt: Dies ist ein optionaler Parameter. Er bestimmt, ob die Suche die gesamte Zelle (xlWhole) oder nur einen Teil davon (xlPart) betrifft.
-
SearchOrder: Dies ist ein optionaler Parameter. Er bestimmt die Reihenfolge, in der die Zellen durchsucht werden. Die Optionen sind xlByRows (sucht zuerst in Zeilen) und xlByColumns (sucht zuerst in Spalten).
-
SearchDirection: Dies ist ein optionaler Parameter. Er bestimmt die Richtung der Suche. Die Optionen sind xlNext (sucht in der Reihenfolge der Zellen) und xlPrevious (sucht in umgekehrter Reihenfolge).
-
MatchCase: Dies ist ein optionaler Parameter. Er bestimmt, ob die Suche die Groß- und Kleinschreibung berücksichtigt (True) oder nicht (False).
-
MatchByte: Dies ist ein optionaler Parameter. Er wird nur in der DBCS (Double-Byte Character Set)-Version von Microsoft Excel verwendet.
-
SearchFormat: Dies ist ein optionaler Parameter. Es ermöglicht die Suche nach einer bestimmten Zellenformatierung.
In Ihrem Fall, wenn Sie in den Formeln suchen möchten, könnten Sie den LookIn Parameter auf xlFormulas setzen. Es würde so aussehen:
Set rngarea = Worksheets("Kalender").Range("K2:Q20").Find(What:=Datum, LookIn:=xlFormulas, Lookat:=xlWhole)
Wenn Sie das tatsächliche Datum finden wollen, das von einer Formel berechnet wird, dann sollten Sie nach den Werten und nicht den Formeln suchen. Der LookIn Parameter sollte auf xlValues gesetzt werden:
Set rngarea = Worksheets("Kalender").Range("K2:Q20").Find(What:=Datum, LookIn:=xlValues, LookAt:=xlWhole)
Dieser Code sucht nach dem Wert von Datum in den Zellen K2 bis Q20 im "Kalender" Arbeitsblatt. Der Parameter LookIn:=xlValues stellt sicher, dass nach dem tatsächlichen Wert gesucht wird, der in der Zelle angezeigt wird (d.h. dem Ergebnis der Formel, wenn eine Formel in der Zelle steht).
Beachten Sie bitte, dass Datum vorher definiert sein muss, sonst wird ein Fehler auftreten.