我正在尝试确定合并单元格的边界(它是开始单元格及其结束单元格)。
这是用于计划工具的,在这里我将这两行用作一种日历。我尝试使用.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
Run Code Online (Sandbox Code Playgroud)
两个范围都输出G2作为地址。我也附上了问题的图片。
这是什么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
Run Code Online (Sandbox Code Playgroud)
还要注意,您按合并单元格的最顶部,最左侧的单元格进行引用:
Set rDate = Range("G2") 'this is still a merged cell.
Run Code Online (Sandbox Code Playgroud)
如果要引用开始和结束单元格,则可能是这样的:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |