293 Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)

Hallo,

mit dem code

Set rngS = Rows(3).Find(arrWerte(0, i), lookat:=xlWhole)
suche ich einen Datumswert "arrWerte(0,i)" in Reihe3 meiner Tabelle. Diese Reihe enthält Datumseintragungen ,mit dem Format "Datum".
Obwohl der gesuchte Datumswert in der Reihe vorhanden ist, erhalte ich stets eine Fehlermaeldung ("Nothing...")
Im Überwachungsfenster werden mir die Daten in Reihe3 allerdings mit dem Format "Object/Range" angezeigt.
Hat jemand einen Tipp?
Danke und Gruß!

4 Antworten

+1 Punkt
Beantwortet von m-o Profi (22.7k Punkte)

Hallo Andreas,

versuch es mal so:

Set rngS = Rows(3).Find(Format(arrWerte(0, i), "mm.dd.yyyy"), lookat:=xlWhole)

Gruß

M.O.

+1 Punkt
Beantwortet von beverly_ Experte (3.3k Punkte)

Hi,

beachte, dass beim Suchen mit Find der Parameter LookIn:=xlFormulas angegeben werden muss, wenn man in (fix eingetragenen) Werten sucht und LookIn:=xlValues wenn es sich um Datumswerte handelt, welche per Formel berechnet sind - das klingt zwar unlogisch, ist aber so. Außerdem wird mit Find ein Datum oft nicht gefunden, wenn ein benutzerdefiniertes Zellformat verwendet wird.

Benutze deshalb anstelle Find besser Application.Match:

    Dim varSpalte As Variant
    varSpalte = Application.Match(Rows(4), arrWerte(0, i), 0)
    If IsNumeric(varSpalte) Then
        ' Datum wurde gefunden
    Else
        ' Datum nicht gefunden
    End If

Bis später, Karin

0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
ausgewählt von halfstone
 
Beste Antwort
Hallo zusammen,

das sind zwei super (und schnelle!) Antworten! Vielen Dank.

Ihr habt mir nicht nur geholfen, ich habe auch viel dabei gelernt.

Viele Grüße A.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)

Noch eine kurze Anmerkung zu Karins Antwort. 

In Zeile2 müßte es sicher

varSpalte = Application.Match( arrWerte(0, i),Rows(4), 0)

heißen. Gruß A.
...