Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Typenfehler 91 bei Suchfunktion

Forumthread: Typenfehler 91 bei Suchfunktion

Typenfehler 91 bei Suchfunktion
24.06.2019 08:38:38
Leon.DerProf

Sub findenetwa()
Dim festNr1 As Long
Dim finden1 As Range
festNr1 = ActiveCell.Offset(0, -5).Value
Worksheets(2).Activate
finden1 = Range("D4:NE4").Find(what:=festNr1, LookIn:=xlValues)
MsgBox finden1
End Sub

In Tabelle1 steht ein Datum, d.h. die Prozedur ermittelt für dieses Datum einen Wert von bspw. 43377.
In Tabelle2 wird im Bereich D4:NE4 dieser Wert (daher das LookIn) gesucht.
Leider gibt es genau hier einen Laufzeitfehler 91: Objektvariable oder With-Block Variable nicht festgelegt.
Wo ist das Problem?
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Schau dir mal folgenden Link...
24.06.2019 08:47:41
Case
Hallo, :-)
... an: ;-)
Range.Find-Methode (Excel)...
Und da das Beispiel am Ende - Set ist das Zauberwort.
Servus
Case

Anzeige
AW: Schau dir mal folgenden Link...
24.06.2019 10:54:05
Luschi
Hallo Case,
leider will M$ es nicht kapieren, daß im angegebenen Beispiel diese Schleifen-Abbruchbedingung:
Loop While Not c Is Nothing
totaler Schwachsinn ist, denn damit hat man sich die schönste Endlos-Schleife programmiert.
Die darüber liegende Bedingung: If Not c Is Nothing Then
sorgt dafür, daß in der Schleife darunter c nie wieder Nothing sein kann!
In der Excel-2003-Vba-Hilfe steht dies:
Loop While Not c Is Nothing And c.Address firstAddress
siehe: https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa195730(v%3Doffice.11)
Schon damals habe ich M$ darauf hingewiesen, daß 'Not c Is Nothing' überflüssig ist, aber daß sie jetzt das genau Falsche weglassen, ist schon ein dickes Ding - zumal ich schon 2x interveniert habe, aber nie eine Antwort zurückkam.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Typenfehler 91 bei Suchfunktion
24.06.2019 10:09:33
Torsten
Hallo,
ja wie Case schon sagt, "Set" ist das Zauberwort. Ranges einen Wert zuweisen muss man immer mit Set:
Und bitte gewoehn dir an, moeglichst nicht zu selecten und zu activaten ;-)

Sub findenetwa()
Dim festNr1 As Long
Dim finden1 As Range
festNr1 = ActiveCell.Offset(0, -5).Value
With Worksheets(2).Range("D4:NE4")
Set finden1 = .Find(what:=festNr1, LookIn:=xlValues)
End With
MsgBox finden1
End Sub

Anzeige
AW: Typenfehler 91 bei Suchfunktion
24.06.2019 10:28:29
Luschi
Hallo Torsten,
auch Deine Lösung ist nicht perfekt, denn es gibt 4 Parameter im Find-Befehl, die er speichert und bei der nächsten Verwendung von Find wieder verwendet, wenn diese Parameter nicht explizit genannt werden; siehe Online-Hilfe bzw. folge dem Link vom User 'Case' und dann Rubrik 'Bemerkungen'.
Gruß von Luschi
aus klein-Paris
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige