如何查找带有variables最后一行的VBA中的列的长度
我是vba的初学者,希望能够使用它来实现一个stream程的自动化。 我有一个电脑程序,为我提供了一个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
任何帮助表示赞赏。 谢谢!
如果您在这些列中使用常量值,并且在这些列中处理的单元格数量较多,则可以使用计数函数:
dim x As Long x = Worksheets(*sheet name*).Range(*column range*).Cells.SpecialCells(xlCellTypeConstants).Count
x正在传递列中非空单元格的数量。 因此,如果适用,您可能希望在列范围内小心不要包含任何标题。
我相信这会让你成为最后一排。 你可能需要小心,如果你想要计算所有的值(例如,第一对夫妇行是空白的)。
Dim lastRow As Long lastRow = Cells(Rows.Count, "A").End(xlUp).Row
要将列A中的数据转换为二维variables数组,请使用以下命令:
Dim vA As Variant vA = [a1:index(a:a,counta(a:a))]
这假定数据中没有空白单元格,并且数据从第1行开始。