我在Excel,新建表和舊錶中有兩個工作表。如果列中包含新工作表A列的每個條目,我試圖在舊工作表的A列中進行搜索。我正在使用以下VBA代碼進行搜索,但它在第二個搜索(非列標題搜索)上返回錯誤。我不知道我在做什麼錯 - 任何幫助表示讚賞。這裏是我的代碼:VBA在Range.Find找不到任何內容後返回錯誤
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
錯誤總是運行時錯誤'1004' - 對象'Range'的方法'查找'失敗。
刪除這一行'Sheets(「New One」)。在這兩個地方激活'看看它是否有效。有關更多信息,請參見[避免選擇](https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=excel%20vba%20avoid%20select)。總之,直接使用對象而不是使用'Activate',除非你絕對需要(這很少見)。 –
它沒有工作。我應該補充說,兩個工作表上的列A的列標題是相同的 - 並且它成功找到列標題。然後A列第2行在「新建一個」中,但不是「舊的」,並且它反彈了錯誤。 – user2395969
您也可以使用'Conditional Formatting'來查找Sheet2中找不到的值,並完全刪除VBA。 ...我運行了代碼,它對我很好。 –