我有一个包含合并单元格的工作表(例如B2:C3,其值为“myValue”)。如果我尝试使用
搜索合并单元格中的值r = ThisWorkbook.ActiveWorksheets.Range("$A:$D").Find("myValue")
Debug.Print r.Address
我只获得具有相似值但不包含合并单元格的其他单个单元格的地址。
如何使用VBA执行此操作?如果我使用Excel的手动搜索功能,它会立即找到该值。
祝你好运, 哈利
编辑:当我使用Gary的代码时,我得到一个运行时错误91.变量r是Nothing。
答案 0 :(得分:1)
清理一些事情:
Sub MAIN()
Dim r As Range
Call Setup
Set r = ThisWorkbook.ActiveSheet.Range("$A:$D").Find("myValue")
Debug.Print r.Address
End Sub
Sub Setup()
Dim rng As Range
Set rng = Range("B2:C3")
With rng
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
rng.Value = "MyValue"
End Sub
将为您提供合并区域的左上角:
答案 1 :(得分:0)
您应该使用MergeArea
来处理此类情况:
Sub test()
Dim r As Range
Set r = ThisWorkbook.ActiveSheet.[A:D].Find("myValue")
Debug.Print r.MergeArea.Address
End Sub