Ich habe zwei Arbeitsblätter in Excel, New Sheet und Old Sheet. Ich versuche, in Spalte A des alten Blattes zu suchen, wenn die Spalte jeden Eintrag der Spalte A des neuen Blattes enthält. Ich verwende den folgenden VBA-Code, um zu suchen, aber es gibt einen Fehler bei der zweiten Suche (der Suche ohne Spaltenüberschrift) zurück. Ich habe keine Ahnung, was ich falsch mache - jede Hilfe wird geschätzt. Hier ist mein Code:VBA Rückgabe Fehler nach Range.Find findet nichts
Sub Sample()
Dim lastRow As Integer
Dim i As Integer
Dim rng As Range
Dim searchrng As Range
Dim searchval As String
lastRow = Sheets("New One").Range("A65000").End(xlUp).Row
Sheets("Old One").Activate
Set searchrng = Sheets("Old One").Range("A1:A10000")
For i = 1 To lastRow
Sheets("New One").Activate
searchval = Sheets("New One").Cells(i, 1).Value
Set rng = searchrng.Find(searchval)
If Not rng Is Nothing Then
MsgBox "Found " & searchval & " in " & rng.Address
Else
Sheets("New One").Activate
Sheets("New One").Cells(i, 1).EntireRow.Interior.Color = vbRed
End If
Next i
End Sub
Der Fehler ist immer Laufzeitfehler ‚1004‘ - Methode ‚Suche‘ des Objekts ‚Range‘ ist fehlgeschlagen.
entfernen Sie diese Zeile 'Sheets (" New One "). Aktivieren Sie an beiden Stellen und sehen Sie, ob es funktioniert. Weitere Informationen finden Sie unter [Auswahl vermeiden] (https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=excel%20vba%20avoid%20select). Kurz gesagt, arbeiten Sie direkt mit den Objekten, anstatt 'Aktivieren' zu verwenden, es sei denn, Sie müssen das unbedingt (das ist selten). –
Es hat nicht funktioniert. Ich sollte hinzufügen, dass die Spaltenüberschriften für Spalten A auf beiden Arbeitsblättern identisch sind - und die Spaltenüberschrift erfolgreich gefunden wird. Dann ist Spalte A, Zeile 2 in "New One", aber nicht "Old One" und es kickt den Fehler zurück. – user2395969
können Sie auch 'Bedingte Formatierung' verwenden, um die Werte zu finden, die nicht in Blatt2 gefunden wurden, und VBA vollständig zu entfernen. ... Ich habe den Code ausgeführt und es hat super für mich funktioniert. –