Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1696to1700
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

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?

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

Betreff
Datum
Anwender
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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige