使用起始单元格地址和结束单元格地址从同一张表中获取范围

时间:2014-02-03 11:13:56

标签: excel vba excel-vba excel-2007

我是Excel VBA的新手,我必须创建一个用于处理大量数据的宏。数据采用以下样本格式:

enter image description here

我正在编写一个函数来获得范围,使得对于A列中的每个单元格,例如AAAA,我需要得到范围B2:B4。我写了一个函数来扫描A列,直到它找到一个非空单元格(startCell),然后从该单元格中获取引用,它通过执行以下方式获取第一个单元格B2:

Worksheets(sheetName).Cells(startCell.Row + 1, 2)

countStart = startCell.Row + 1

然后它运行一个循环,从B2开始计算B列中的单元格数(使用countStart作为行号)直到遇到空单元格并将计数存储在countFinal中。然后我想获得

之间的范围
Worksheets(sheetName).Cells(startCell.Row + 1, 2) 

Worksheets(sheetName).Cells(countFinal, 2)

对于具有BBBB和CCCC的细胞,需要进行同样的操作

我该怎么做?

PS:我不能在这里分享代码,因为代码在我的办公室机器上,而且我是从我的家用机器发布的。但我可以看看我是否可以在以后发布它。

1 个答案:

答案 0 :(得分:1)

您需要使用以下语法组合​​起始和结束范围点:

Range(StartingCell, EndingCell)

在你的情况下可以如下:

Worksheets(sheetName).Range( _
    Worksheets(sheetName).Cells(startCell.Row + 1, 2), _
    Worksheets(sheetName).Cells(startCell.Row + 1, 2).End(XlDown))