Excel 2003, Probleme mit Range.Find/FindNext

29/12/2009 - 20:56 von Joerg Wolf | Report spam
Hi NG,

ich kàmpfe mit Range.Find/FindNext

Folgende Routine soll rot formatierte Zellen finden. Ein Feld wird richtig
erkannt, dann endet die Routine in einer Endlosschleife, ohne weitere Zellen
zu finden.

Private Sub Test()
Dim bereich As Range, SuchStart As Range, r As Range
Set bereich = Range("e4:H8")
Application.FindFormat.Clear
Application.FindFormat.Font.ColorIndex = 3 'rot
Set r = bereich.Find(What:="", SearchFormat:=True)

If Not r Is Nothing Then
Set SuchStart = r

Do
MsgBox r.Address
Set r = bereich.FindNext(r)
Loop Until SuchStart = r Or r Is Nothing
End If
End Sub

Kann mir mal jemand die Augen öffnen?

Gruß Jörg
 

Lesen sie die antworten

#1 Peter Schleif
29/12/2009 - 23:28 | Warnen spam
Joerg Wolf schrieb am 29.12.2009 20:56 Uhr:

Do
MsgBox r.Address
Set r = bereich.FindNext(r)
Loop Until SuchStart = r Or r Is Nothing

Kann mir mal jemand die Augen öffnen?



1. Beim Vergleich von "Suchstart" mit "r" reicht es nicht aus, nur die
Range-Objekte anzugeben. Denn damit vergleicht Du deren
default-Eigenschaft .Value und nicht die Adressen der Zellen.

2. FindNext funktioniert bei mir (xl2002) nicht mit FindFormat. Darum
muss bei jedem Durchlauf eine neue Find-Suche angegeben werden – mit dem
zusàtzlichen Parameter After:=r

Do
MsgBox r.Address
Set r = bereich.Find(What:="", SearchFormat:=True, After:=r)
Loop Until SuchStart.Address = r.Address Or r Is Nothing

Peter

Ähnliche fragen