Excel 寻找合并单元的边界?

Excel 寻找合并单元的边界?,excel,vba,Excel,Vba,我试图确定合并单元格的边界(起始单元格和结束单元格) 这是一个调度工具,我使用这两行作为一种日历。我尝试使用.Count为起始单元格和结束单元格设置一个范围,但没有成功,因为两者都在输出起始单元格地址 Set rDate = Sheet1.Range("G2:" & sCol & "3") Set rMonth = rDate.Find(sMonth) If rDate.MergeCells Then Set rStart = rDate.Cells(1

我试图确定合并单元格的边界(起始单元格和结束单元格)

这是一个调度工具,我使用这两行作为一种日历。我尝试使用.Count为起始单元格和结束单元格设置一个范围,但没有成功,因为两者都在输出起始单元格地址

Set rDate = Sheet1.Range("G2:" & sCol & "3")
Set rMonth = rDate.Find(sMonth)

    If rDate.MergeCells Then
        Set rStart = rDate.Cells(1, 1)
        Set rEnd = rDate.Cells(rDate.Rows.Count, rDate.Columns.Count)
    End If

MsgBox rStart.Address
MsgBox rEnd.Address
两个范围都输出G2作为地址。我还附上了这个问题的图片

这就是:

返回一个范围对象,该对象表示包含指定单元格的合并范围。如果指定的单元格不在合并范围内,此属性将返回指定的单元格

还要注意的是,通过最上面、最左边的单元格引用合并单元格:

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
试一试


使用maybe。你能详细说明你的意思吗?我想能够输出合并单元格的起始单元格和结束单元格。我尝试了上面的代码,它给了我一个运行时错误1004:“应用程序定义的,或对象定义的错误”。@JordanChancellor请查看我对如何引用合并单元格的编辑。我很抱歉,可能我弄糊涂了。如果单元格从A3合并到G3,是否有方法单独输出G3?我想我知道如何通过引用范围的左上角来输出起始单元格,但我的问题实际上在于输出结束边界单元格。我完全忘记了分割函数。这正是我需要的。非常感谢你的帮助!!
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
MsgBox rStart.Address
MsgBox rStart.MergeArea(rStart.MergeArea.Count).Address