如何在变量最后一行的VBA中查找列的长度

时间:2015-07-10 21:48:29

标签: excel vba excel-vba

我是vba的初学者,希望能够使用它来自动化流程。我有一个计算机程序,它为我提供了一个Excel电子表格,其中列中的数据量可以更改。例如,我可以有一个长度为9的列:

1

3

2

4

24

23

432

55

2

或长度为5的列(注意:实际列大小通常为数千):

1

2

3

4

8

我想编写将抓取此列的代码,而不知道列的长度。类似的东西:

Dim list1 As Array
'I don't know how to find the upper bound
list1 = Range("A1:A" & Upper Bound).Value

感谢任何帮助。谢谢!

3 个答案:

答案 0 :(得分:1)

如果您在这些列中使用常量值并且在这些列中处理大量单元格,则使用count函数可能很有用:

dim x As Long
x = Worksheets(*sheet name*).Range(*column range*).Cells.SpecialCells(xlCellTypeConstants).Count

x正在传递列中非空单元格的数量。因此,您可能需要在列范围内小心,不要包含任何标题(如果适用)。

答案 1 :(得分:0)

我相信这会让你排在最后一排。如果您想要计算所有值(例如,前几行是空白的),您可能需要小心。

Dim lastRow As Long

lastRow = Cells(Rows.Count, "A").End(xlUp).Row

答案 2 :(得分:0)

要将A列中的数据转换为2d变体数组,请使用以下命令:

Dim vA As Variant

vA = [a1:index(a:a,counta(a:a))]

这假设数据中没有空白单元格,并且数据从第1行开始。