2014-12-07 81 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

相關問題