2014-12-07 380 views
0

我想选择合并单元格正下方的所有单元格。在Excel/VBA中为合并单元格下的所有单元格选择范围

因此,例如,如果单元格A3合并到H3,那么我想选择单元格A4到H20。 我不想在选择中包含合并的单元格,所以我不能只使用Range(“A4:H20”)。

我想要一种方法如何使用vba获取范围(A4:H20)。 任何帮助将不胜感激。

+0

第20行是您永远不会过去的实际限制吗?如果是这样,那么BobbitWormJoe的解决方案应该完全符合你的需求;否则,您可以轻松地更新他的一小部分代码以符合您的标准。 – 2014-12-07 22:25:58

+0

其实在我的excel表格中只有20行,但可以更高的行号 – 2014-12-08 12:28:37

回答

1

您可以使用MergeArea来获取列数,并将其与OffsetResize一起用于定义范围。例如:

Sub BelowMerged() 

    Dim nRows As Long, nCols As Long 
    Dim rFirstCell As Range, rFinal As Range 

    nRows = 17 
    Set rFirstCell = ActiveSheet.Range("A3") 
    nCols = rFirstCell.MergeArea.Columns.Count 

    Set rFinal = rFirstCell.MergeArea.Offset(1, 0).Resize(nRows, nCols) 
    rFinal.Select 

End Sub 
+0

实际上在我的excel表格中只有20行,但可以更高的行数 – 2014-12-08 12:32:33

+0

没问题。如果你谷歌它,你会发现无数的方法来获取一个范围内的最后一个单元格的行号。只需使用其中一种方法将该号码分配给'nRows'。 – BobbitWormJoe 2014-12-08 19:42:59

相关问题