Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Find-Schleife

Find-Schleife
22.05.2008 19:59:05
Christian
Servus Forum,
ich werd noch verrückt!
kann mir bitte jemand sagen, warum dieses makro nicht funktioniert:

Sub t()
Dim lngletzte As Long, i As Long, strSuchbegriff As String
Dim rSuche As Range, rFinde As Range, strErste As Range, lngReihe As Long
lngletzte = IIf(IsEmpty(Cells(Rows.Count, 4)), Cells(Rows.Count, 4).End(xlUp).Row, Rows.Count)
Set rFinde = Range("A1:A65536")
For i = 1 To lngletzte
strSuchbegriff = Cells(i, 4).Value
Set rSuche = rFinde.Find(What:=strSuchbegriff, LookIn:=xlValues, LookAt:=xlWhole,  _
SearchOrder:=xlByColumns, SearchDirection:=xlNext)
If Not rSuche Is Nothing Then
strErste = rSuche.Address
Do
lngReihe = rSuche.Row
Range(Cells(lngReihe, 1), Cells(lngReihe, 3)).Copy Sheets(2).Range("A65536").End(xlUp). _
_
_
Offset(1, 0)
Set rSuche = rFinde.FindNext(rSuche)
Loop While Not rSuche Is Nothing And strErste  rSuche.Address
End If
Next i
Set rFinde = Nothing
Set rSuche = Nothing
End Sub


Ich bekomme jedesmal Fehler91 (Withblockvariable).
Wenn ich die Do-Schleife rausnehme (Makro t) geht es, aber ich seh den Fehler nicht .
Hier noch ne kleine Beispieldatei:
https://www.herber.de/bbs/user/52560.xls
Gruß
Christian

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Find-Schleife
22.05.2008 20:07:24
Josef
Hallo Christian,
Dim strErste As String
ausserdem würde ich es so machen.
Sub t()
Dim lngletzte As Long, i As Long, strSuchbegriff As String
Dim rSuche As Range, rFinde As Range, strErste As String, lngReihe As Long

lngletzte = IIf(IsEmpty(Cells(Rows.Count, 4)), Cells(Rows.Count, 4).End(xlUp).Row, Rows.Count)

Set rFinde = Range("A1:A65536")
For i = 1 To lngletzte
    strSuchbegriff = Cells(i, 4).Value
    If strSuchbegriff <> "" Then
        Set rSuche = rFinde.Find(What:=strSuchbegriff, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext)
        If Not rSuche Is Nothing Then
            strErste = rSuche.Address
            Do
                lngReihe = rSuche.Row
                Range(Cells(lngReihe, 1), Cells(lngReihe, 3)).Copy Sheets(2).Range("A65536").End(xlUp).Offset(1, 0)
                Set rSuche = rFinde.FindNext(rSuche)
            Loop While Not rSuche Is Nothing And strErste <> rSuche.Address
        End If
    End If
Next i

Set rFinde = Nothing
Set rSuche = Nothing
End Sub


Gruß Sepp



Anzeige
AW: Danke Sepp, der berühmte...
22.05.2008 20:13:51
Christian
...Wald, den man vor lauter Bäumen nicht sieht.
Habe ich glatt übersehen, dass ich die strErste als Range deklariert hatte, dabei steht extra str... dabei.
das mit den Leerzellen ist eine gute Anmerkung.
Ich glaube, es wird Zeit, dass ich aufhöre und mich gemütlicheren Dingen widme.
Gruß aus Bayern
Christian

AW: Falsche Variablendeklaration
22.05.2008 20:10:41
Daniel
Hi
strErste ist als RANGE deklariert, wahrscheinlich meinst du aber STRING
Gruß, Daniel

AW: Klar mein ich String, danke, o.w.T
22.05.2008 20:14:43
Christian
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige