Anzeige
Archiv - Navigation
120to124
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
120to124
120to124
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

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

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

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige