1

.find当搜索范围内有合并单元格时,我有一个关于在 Excel VBA 中使用该方法的问题。这是代码:

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

运行代码后 SearchCell 为空,我猜是因为 A26:K26 合并为一个单元格,而值为“Open RMA”;我不想取消合并它。

4

1 回答 1

3

我认为这是有问题的,除非您扩展范围以包括合并单元格的范围,例如将 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
于 2013-07-11T22:24:52.490 回答