.find
当搜索范围内有合并单元格时,我有一个关于在 Excel VBA 中使用该方法的问题。这是代码:
Dim SearchCell As Range
Set SearchCell = ActiveSheet.Range("A:A").Find(What:="Open RMA*", LookIn:=xlValues)
运行代码后 SearchCell 为空,我猜是因为 A26:K26 合并为一个单元格,而值为“Open RMA”;我不想取消合并它。
我认为这是有问题的,除非您扩展范围以包括合并单元格的范围,例如将 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