Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1560to1564
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
Inhaltsverzeichnis

VBA Find

VBA Find
08.06.2017 16:39:54
Dominik
Guten Tag,
ich habe ein Problem bei einem Programm.
Set Ergebnis2 = Worksheets("Controlling").Range("B:B").Find(Suchdatum, LookIn:=xlValues).Row
Bei Ausführung dieses Programmteil bekomme ich jedoch einen Fehler angezeigt:
Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht festgelegt.
Diese Programmzeile soll mir die Zeilenzahl angeben, in der das Suchdatum gefunden wurde.
(ohne ".Row" funktioniert die Programmzeile, gibt jedoch nur den Inhalt des gefundenen Feldes, also das Suchdatum, zurück)
Ich hoffe ihr könnt mir Helfen.
Dominik

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Find
08.06.2017 16:43:17
Hajo_Zi
Hallo Dominik,
hast Du Ergebnis auch als Long definiert?

AW: VBA Find
08.06.2017 16:49:52
Dominik
Hallo Hajo
Wenn ich Ergebnis2 vorher dimensioniere erscheint der Fehler: "Fehler beim kompilieren, Objekt erforderlich".
Der komplette Programmcode:
Suchdatum = Worksheets("Controlling").Cells(2, 12).Value
MsgBox (Suchdatum)
Set Ergebnis2 = Worksheets("Controlling").Range("B:B").Find(Suchdatum, LookIn:=xlValues).Row
If Ergebnis2 Is Nothing Then
MsgBox ("nicht gefunden")
Else
MsgBox (Ergebnis2)
End If

Dominik
AW: VBA Find
08.06.2017 16:53:13
Hajo_Zi
Halo Dominik,
bei dem Code muss .row fort.
Es ist nicht der komplette Code.
Die Dimensionierung für ohne Row kennst Du ja.
Meine Tipps willst Du ja nicht umsetzen.
Ich bin dann raus.
Gruß Hajo
Anzeige
AW: VBA Find
08.06.2017 16:55:42
mmat
Ergebnis2 ist irgendeine Zahl, kein Range.
"Set" bitte weglassen
Option Explicit
Sub test()
Dim ergebnis2 As Integer
ergebnis2 = Worksheets("Tabelle1").Range("E:E").Find("warum", LookIn:=xlValues).Row
Debug.Print ergebnis2
End Sub

AW: VBA Find
08.06.2017 17:02:48
Dominik
Wenn ich das so umsetze bekomme ich den Laufzeitfehler 91.
Sub test()
Suchdatum = Worksheets("Controlling").Cells(2, 12).Value
MsgBox (Suchdatum)
Dim Ergebnis2 As Integer
Ergebnis2 = Worksheets("Controlling").Range("B:B").Find(Suchdatum, LookIn:=xlValues).Row
Debug.Print Ergebnis2
End Sub
Beim debuggen verweist Excel auf die Zeile mit dem .Row am Ende
Oder habe ich das falsch umgesetzt?
Dominik
Anzeige
AW: VBA Find
08.06.2017 17:33:05
mmat
Sorry, das kann ich jetzt auf die schnelle nicht nachvollziehen.
Das von mir gepostete Muster ist getestet. In der "Tabelle1" gibt's irgendwo in der Spalte E eine Zelle mit dem Text "warum". Die Zeile dieser Zelle wird im Debug-Bereich ausgegeben.
Muß jetzt leider weg.
vg, MM
AW: VBA Find
08.06.2017 17:34:41
Nepumuk
Hallo Dominik,
so geht das:
Sub test()
    Dim Ergebnis2 As Range
    Dim Suchdatum As Date
    
    Suchdatum = Worksheets("Controlling").Cells(2, 12).Value
    MsgBox (Suchdatum)
    
    Set Ergebnis2 = Worksheets("Controlling").Columns(2).Find(What:=Suchdatum, LookIn:=xlValues)
    
    If Ergebnis2 Is Nothing Then
        MsgBox "Nix gefunden"
    Else
        MsgBox Ergebnis2.Row
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Find
08.06.2017 17:38:48
Dominik
Okay, das funktioniert tadellos.
Vielen Dank :-)
Wobei ich jetzt allerdings noch nicht ganz verstanden habe wo der Fehler genau lag.
Könntest du mir das erklären?
AW: VBA Find
08.06.2017 17:44:36
Nepumuk
Hallo Dominik,
die Find-Methode gibt ein Range-Objekt zurück, aber nur wenn etwas gefunden wurde. Wird nichts gefunden gibt die Methode Nothing zurück und .Row von Nothing gibt nun mal den Fehler 91 - Object variable not set.
Gruß
Nepumuk
AW: VBA Find
08.06.2017 17:45:39
Dominik
Dankeschön :-)

122 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige