2013-07-11 193 views
0

我有一個關於在excel vba中使用.find方法的問題,當在搜索範圍內有合併單元格時。下面是代碼:當有合併單元格時使用find方法,vba excel

Dim SearchCell As Range 
Set SearchCell = ActiveSheet.Range("A:A").Find(What:="Open RMA*", LookIn:=xlValues) 

SearchCell是運行代碼後空的,我猜bcuz A26:K26被合併爲一個單元格,而值是「打開RMA」;我不想拆分它。

任何人都可以幫忙嗎?謝謝!

回答

1

我認爲這是有問題的,除非您擴展範圍以包含合併單元格的範圍,例如將A:A更改爲A:D。

另一種方法是:

Dim SearchCell As Range 

If Not Application.IsNA(Application.Match("Open RMA*", Range("A:A"), 0)) Then 
    Set SearchCell = Cells(Application.Match("Open RMA*", Range("A:A"), 0), 1) 
    MsgBox "Found at " & SearchCell.Address 
End If 

它需要一些更好的錯誤檢查,但是,如果該值未找到。 新增這樣的:

If Not IsError(Application.Match("Open RMA*", Range("A:A"), 0)) Then 
    Set SearchCell = Cells(Application.Match("Open RMA*", Range("A:A"), 0), 1) 
    MsgBox "Found at " & SearchCell.Address 
End If 
+0

太謝謝你了! – user2495069