Вот что такое Range.MergeArea
:
Возвращает объект Range , представляющий объединенный диапазон, содержащий указанную ячейку. Если указанная ячейка не находится в объединенном диапазоне, это свойство возвращает указанную ячейку.
If rDate.MergeCells ' not really necessary, unless you only want to work with a merged cell
MsgBox rDate.MergeArea.Address
End If
Также отметим, что вы ссылаетесь на объединенную ячейку по ее самой верхней, самой левой ячейке:
Set rDate = Range("G2") 'this is still a merged cell.
Если вы хотите сослаться на начальную и конечную ячейки, возможно, что-то вроде этого:
Sub Test()
Dim rDate As Range
Set rDate = Sheet1.Range("G2")
If rDate.MergeCells Then
Dim startAddress As String
startAddress = Split(rDate.MergeArea.Address, ":")(0)
Dim endAddress As String
endAddress = Split(rDate.MergeArea.Address, ":")(1)
End If
MsgBox "The start address is " & startAddress & _
" and the end address is " & endAddress & "."
End Sub