获取列中填充单元格的数量(VBA)

poe*_*orn 18 excel vba excel-vba

我的第一列是一个索引,数字单调递增,结束于一个不可预测的点.现在我想知道这个专栏有多少条目.有没有比通过迭代更好的方式并注意一个空单元?

小智 19

如果要查找特定列中的最后一个填充单元格,最好的方法是:

Range("A" & Rows.Count).End(xlUp).Row
Run Code Online (Sandbox Code Playgroud)

此代码使用整个列中的最后一个单元格(对于Excel 2003为65536,在更高版本中为1048576),然后在其上方找到第一个填充的单元格.这样就可以忽略数据中的"中断"并找到真正的最后一行.


Ale*_* K. 15

一种方法是:(假设索引列从A1开始)

MsgBox Range("A1").End(xlDown).Row
Run Code Online (Sandbox Code Playgroud)

这是从A1向下寻找第一个未占用的单元格并向您显示其序数行号.

您可以选择下一个空单元格:

Range("A1").End(xlDown).Offset(1, 0).Select
Run Code Online (Sandbox Code Playgroud)

如果需要数据集的结尾(包括空格),请尝试:Range("A:A").SpecialCells(xlLastCell).Row


alm*_*ori 5

你也可以使用

Cells.CurrentRegion
Run Code Online (Sandbox Code Playgroud)

为您提供一个范围,表示当前活动工作表上数据的范围

Msdn就此话题说

返回表示当前区域的Range对象.当前区域是由空行和空白列的任意组合限定的范围.只读.

然后,您可以通过确定列数

Cells.CurrentRegion.Columns.Count
Run Code Online (Sandbox Code Playgroud)

和行计数通过

Cells.CurrentRegion.Rows.Count
Run Code Online (Sandbox Code Playgroud)