Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
856to860
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
856to860
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Find

Find
26.03.2007 21:54:53
PeterN

Hallo Liebe Forumleser,
ich habe folgendes Problem:
Ich würde gerne über eine For schleife die Zele finden, in der ein bestimmter String steht und dann diesen Bezug speichern. mein derzeitiger Ansatz funktioniert leider nicht:
If Sheets(1).Cells(i, 1).Find(What:=" 144F", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False) = True Then
Start = Sheets(1).Cells(i, 1)
Exit For
End If
Es hat was mit der abfrage zu tun. Kennt jemand ein Lösung?
Vielen Dank,
Peter

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

Betreff
Datum
Anwender
  • 26.03.2007 22:10:01
    Josef Ehrensberger
  • 26.03.2007 22:15:29
    PeterN
  • 26.03.2007 22:22:11
    Daniel
  • 26.03.2007 22:58:40
    PeterN
Anzeige
AW: Find
26.03.2007 22:10:01
Josef Ehrensberger
Hallo Peter,
das geht so.
Sub suchen()
Dim objSh As Worksheet
Dim rngSearch As Range
Dim strFirst As String, varFind As Variant

Set objSh = Sheets("Tabelle1")

varFind = " 144F"

Set rngSearch = objSh.Range("A:A").Find(What:=varFind, LookIn:=xlFormulas, LookAt:=xlPart)

If Not rngSearch Is Nothing Then
    
    strFirst = rngSearch.Address
    
    Do
        
        'hier was mit der/den Fundsellen geschehen soll
        
        
        Set rngSearch = objSh.Range("A:A").FindNext(rngSearch)
        
    Loop While Not rngSearch Is Nothing And rngSearch.Address <> strFirst
    
End If

Set objSh = Nothing
Set rngSearch = Nothing

End Sub

Gruß Sepp
Anzeige
Danke
26.03.2007 22:15:29
PeterN
AW: Find
26.03.2007 22:22:11
Daniel
Hallo
dafür brauchst du keine For-Schleife, mit Find findest du die Zelle auch so im angegebenen Suchbereich
wenn der Wert " 144F" auf jeden Fall in den Zellen vorkommt, sollte dieser Code reichen, ohne if For-Next-Schleife:
Set Start = Sheets(1).Columns(1).Find(What:=" 144F", After:=Sheets(1).cells(1,1), LookIn:=xlFormulas, LookAt :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= False, SearchFormat:=False)
auch generell mach die IF-Abfrage so keinen Sinn.
Das Ergebnis eines .FIND()-Befehls ist immer ein Zellbereich und nicht ein Wahrheitswert.
weitere Fehler:
du möchtest der Variable Start den Bezug speichern, also ist Start eine Objekt-Variable (und zwar für ein Range-Objekt.
Wenn du einer Objekt-Variable ein Objekt zuweisen willst (auch ein Zellbereich ist ein Objekt) muß daß immer mit der SET-Anweisung passieren.
Set Start = sheets(1).cells(i,1)
weist du den Wert ohne SET zu, bekommt die Variable Start nur den Wert dieser Zelle zugewiesen.
noch ein Fehler:
wenn du beim FIND-Befehl das Sheet, in dem gesucht werden soll, mit angibst, (also Sheets(1).cells.FIND()) , dann mußt du beim Parameter "AFTER:=" auch immer das Sheet mit angeben:
"After:=Sheet(1).cells(1,1)"
da du beim suchen ja das Sheet mit angibst, muß das Sheet in dem gesucht wird, nicht unbedingt das Aktive sein. ACTIVECELL bezieht sich aber immer auf das aktive Sheet, und dann kommt Excel durcheinander, weil jetzt ja 2 verschiedene Sheets im Spiel sind
Gruß, Daniel
Anzeige
AW: Find
26.03.2007 22:58:40
PeterN
Vielen Dank für die erläuterungen!
Hilft sich selber weiter zu entwickeln! ;)
Danke!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige