Ich schrieb diese schnelle For-Schleife als Teil meines Makros, um Zellen in utwbk zu finden, basierend auf einer Liste von Werten in dewbk. Die Schleife scheint für ein paar Zellen in Ordnung zu sein und stürzt dann ab. Das Problem ist, es stürzt jedes Mal für verschiedene Werte ab, aber die Werte existieren in utwbk. Hier ist mein Code:vba range.find Methode stoppt auf zufällige Zellen
Dim utpath As String
Dim utwbk As Workbook
Dim ogfund As String
Dim ogcell As Range
Dim newfund As String
Dim newcell As Range
Dim t As Long
For t = 2 To tempfundlastrow
If dewbk.Sheets("Macro").Cells(t, 1).Value <> "" Then
Set ogcell = dewbk.Sheets("Macro").Cells(t, 1)
ogfund = Trim(ogcell.Value)
With utwbk.Sheets("Report").Range(Cells(1, 1), Range("AAA1").SpecialCells(xlCellTypeLastCell))
Set newcell = .Find(ogfund, LookIn:=xlValues, lookat:=xlWhole)
End With
newfund = newcell.Value
newcell.Offset(2, 0).Value = ogcell.Offset(0, 8).Value
newcell.Offset(3, 0).Value = ogcell.Offset(0, 9).Value
newcell.Offset(4, 0).Value = ogcell.Offset(0, 11).Value
newcell.Offset(6, 0).Value = ogcell.Offset(0, 10).Value
Else
'nothing
End If
Next t
Der Code stürzt mit Laufzeitfehler 91: ‚Objektvariable mit Blockvariable nicht gesetzt‘ auf dieser Linie:
newfund = newcell.Value
In der vorherige Zeile, wo ich definiere newcell, ogfund hat einen Wert und ich kann diesen Wert in utwbk so wirklich nicht sicher finden, was los ist. Ich gehe davon aus, dass meine Syntax für die .Find falsch ist, aber ich weiß nicht, wie ich das beheben soll. Wie immer wird jede Hilfe sehr geschätzt!
Vielleicht tat es nicht finde 'ogfund'. Sie müssen testen, ob 'newcell nichts ist'. – Brian