Laufzeitfehler 91 bei Findnext (VBA)

07/11/2008 - 09:31 von Wolfgang Hoppe | Report spam
Hallo zusammen,
Ich habe ein Problem:
In Tabelle 1 Spalte B kommt das Wort "NEU" einmal oder mehrmals vor. Das
Wort soll nun gesucht werden, durch eine Nummer ersetzt werden und dann in
Tabelle 2 in Spalte H kopiert werden.
Mein nachfolgender Code funktioniert, nur, dass am Ende ein Hinweis mit dem
Laufzeitfehler 91 (Objektvariable oder With-Blockvariable nicht festgelegt)
erscheint.
Kann mir jemand den Code so veràndern, dass alles einwandfrei und ohne
Fehlerhinweis làuft. Vielen Dank im Voraus.

Code:
Sub Ref_finden()
Dim rFound As Range
Dim rSearch As Range
Dim sFirstAddress As String

'Set search range to column B
Range("B1").Select
Set rSearch = Intersect(ActiveSheet.UsedRange, ActiveSheet.Columns(2))
'Find the first occurance of "NEU"
Set rFound = rSearch.Find(what:="NEU", _
after:=rSearch.Cells(rSearch.Cells.Count), _
lookat:=xlWhole)
'If "NEU" was found
If Not rFound Is Nothing Then
'Store the address in a variable
sFirstAddress = rFound.Address
sLastAddress = Cells(Rows.Count, 2).End(xlUp).Row
'Start a loop
i = 1
a = 8
m = 57
Do
Worksheets("Tabelle2").Activate
Set myRange = Worksheets("Tabelle2").Cells(i, a)
Worksheets("Tabelle1").Activate
rFound.Cells.Select
Selection.Replace what:="NEU", replacement:="700BGI08000" & m
Selection.Copy
Worksheets("Tabelle2").Activate
myRange.Select
ActiveSheet.Paste
Application.CutCopyMode = False
'Set rFound = rSearch.FindNext(rFound)
Set rFound = rSearch.FindNext(rFound)
i = i + 1
m = m + 1
'Stop when Find loops back to the first cell found
Loop Until rFound.Address = sFirstAddress
End If
End Sub


Wolfgang
 

Lesen sie die antworten

#1 Wolfgang Hoppe
07/11/2008 - 10:38 | Warnen spam
Zum besseren Verstàndinis hier die Daten in Tabelle 1 Spalte B (Tabelle 2
iast leer):
NEU
700BGI0800050
700BGI0800051
700BGI0800052
700BGI0800053
700BGI0800054
NEU
700BGI0800055
700BGI0800056
NEU

Wolfgang


"Wolfgang Hoppe" wrote:

Hallo zusammen,
Ich habe ein Problem:
In Tabelle 1 Spalte B kommt das Wort "NEU" einmal oder mehrmals vor. Das
Wort soll nun gesucht werden, durch eine Nummer ersetzt werden und dann in
Tabelle 2 in Spalte H kopiert werden.
Mein nachfolgender Code funktioniert, nur, dass am Ende ein Hinweis mit dem
Laufzeitfehler 91 (Objektvariable oder With-Blockvariable nicht festgelegt)
erscheint.
Kann mir jemand den Code so veràndern, dass alles einwandfrei und ohne
Fehlerhinweis làuft. Vielen Dank im Voraus.

Code:
Sub Ref_finden()
Dim rFound As Range
Dim rSearch As Range
Dim sFirstAddress As String

'Set search range to column B
Range("B1").Select
Set rSearch = Intersect(ActiveSheet.UsedRange, ActiveSheet.Columns(2))
'Find the first occurance of "NEU"
Set rFound = rSearch.Find(what:="NEU", _
after:=rSearch.Cells(rSearch.Cells.Count), _
lookat:=xlWhole)
'If "NEU" was found
If Not rFound Is Nothing Then
'Store the address in a variable
sFirstAddress = rFound.Address
sLastAddress = Cells(Rows.Count, 2).End(xlUp).Row
'Start a loop
i = 1
a = 8
m = 57
Do
Worksheets("Tabelle2").Activate
Set myRange = Worksheets("Tabelle2").Cells(i, a)
Worksheets("Tabelle1").Activate
rFound.Cells.Select
Selection.Replace what:="NEU", replacement:="700BGI08000" & m
Selection.Copy
Worksheets("Tabelle2").Activate
myRange.Select
ActiveSheet.Paste
Application.CutCopyMode = False
'Set rFound = rSearch.FindNext(rFound)
Set rFound = rSearch.FindNext(rFound)
i = i + 1
m = m + 1
'Stop when Find loops back to the first cell found
Loop Until rFound.Address = sFirstAddress
End If
End Sub


Wolfgang

Ähnliche fragen