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

Laufzeitfehler 1004 bei find

Forumthread: Laufzeitfehler 1004 bei find

Laufzeitfehler 1004 bei find
13.05.2002 11:01:47
Hagen
Hallo,

bei Verwendung der Range-Methode Find in folgendem Code spuckt Excel 97 mir folgende Fehlermeldung aus:

"Laufzeitfehler '1004': Die Find-Eigenschaft des Range-Objektes kann nicht zugeordnet werden.

Sub soundso(ByVal reftab As Excel.Worksheet)
Dim c As Range
...
Set c = reftab.Columns(1).Find("text", LookAt:=xlWhole, MatchCase:=True)
...
End Sub

Unter Excel 2000 läuft dies problemlos, dafür taucht der Fehler aber unter einer ähnlichen Situation auf.

Sub sowieso()
Dim wb As Workbook
Dim sh As Worksheet
Dim c As Range
Set wb = Workbooks.Open("datei.xls", IgnoreReadOnlyRecommended:=True)
Set sh = wb.Worksheets(1)
' bis hierhin klappt alles
Set c = sh.Columns(3).Find("text", LookAt:=xlWhole, MatchCase:=True)
...
End Sub

Einziger Unterschied ist hier, wie das Worksheet-Objekt zugewiesen wird.

Was ist der Fehler, oder ist dies ein bekannter Bug?
Achso, ich bin auf die Find-Methode angewiesen, da ich nicht weiss, wieviele Zeilen die zu durchsuchende Spalte hat. Bei For Each wird ja leider alles durchsucht, auch wenn der Arbeitsbereich schon überschritten ist.

Gruß,
Hagen

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Laufzeitfehler 1004 bei find
13.05.2002 11:08:45
Hubert

Versuch's doch mal damit: Das löst das Problem nicht zu wissen wie viele Zeilen und Spalten durchsucht werden sollen und lässt dich flexibler arbeiten als mit find....

For z = 1 To worksheet(1).UsedRange.Rows.Count
For s = 1 To TB.UsedRange.Rows.Count
if CStr(TB.Cells(z, s).Text) = suchstring then
machwas
endif
Next s
next z


Gruß Hubert

Anzeige
Re: Laufzeitfehler 1004 bei find
13.05.2002 11:11:54
Hubert
Oder so:

Public Function sucheintabellenblatt() As Range 'Tabellenbereich ohne Laufzeitfehler durchsuchen _

Dim gZelle As Range, sBegriff$
Range("A1").Select

sBegriff = InputBox("Bitte Suchbegriff eingeben:", Application.UserName)
If sBegriff = "" Then Exit Function

Set gZelle = ActiveSheet.Columns("a:F").Find(sBegriff)

If gZelle Is Nothing Then
Beep
MsgBox "Suchbegriff nicht gefunden!", , Application.UserName
Exit Function
End If

gZelle.Select
MsgBox gZelle.Address(False, False)
gZelle.Offset(1).Select

While ActiveCell.Address <> gZelle.Address

Cells.FindNext(after:=ActiveCell).Activate
If ActiveCell.Address = gZelle.Address Then Exit Function
MsgBox ActiveCell.Address(False, False)
Wend


End Function

Anzeige
Re: Laufzeitfehler 1004 bei find
13.05.2002 11:28:28
Hagen
Hallo Hubert,

danke erstmal. UsedRange ist ne gute Sache :-) Das löst mein Problem.
Aber woran liegt's eigentlich, dass man diesen Laufzeitfehler bekommt?

Gruß,
Hagen

Re: Laufzeitfehler 1004 bei find
13.05.2002 11:30:31
Hubert
Hallo Hagen,

soweit ich das seinerzeit verstanden hatte (ich hatte das gleiche Problem), steigt find aus wenn es nichts findet (vielleicht als "Eselsbrücke": sonst würde der befehl ja search heißen ;-))

Gruß Hubert

Anzeige
Re: Laufzeitfehler 1004 bei find
13.05.2002 11:30:38
Hubert
Hallo Hagen,

soweit ich das seinerzeit verstanden hatte (ich hatte das gleiche Problem), steigt find aus wenn es nichts findet (vielleicht als "Eselsbrücke": sonst würde der befehl ja search heißen ;-))

Gruß Hubert

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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