第1个回答 推荐于2017-11-26
获取D列最后一个非空数值单元格的值: =lookup(9e307,D:D)。获取第7行最后一个非空数值单元格的值: lookup(9e307,7:7)。 获取D列最后一个非空文本单元格的值: =lookup(char(65535),D:D)获取第7行最后一个非空文本单元格的值: =loolup(char(65535),5:5) 关键:lookup函数 9e307(Excel允许输入的最大数值。) 65535(Excel允许输入的最大单个文字。)本回答被提问者采纳
第2个回答 2021-04-08
我们如何知道在Excel中的数据到底有多少行?我想这个问题肯定有很多人特别想知道,因为在我们VBA案例中,经常会用得到最后行号,下面就和大家分享几种方法:
1.使用For循环方法
'定义num储存行号的变量,i循环变量
Dim num, i
'将Excel最大行号赋值给变量
num = Rows.Count
'开始循环并判断,找出最后有值的单元格
For i = 1 To num
If Range("a" & num) <> "" Then
Exit For
End If
num = num - 1
Next
'输出num,也就是得到的行号
MsgBox num
执行后可以正确得到最后数据行行号
不足点:
数据行很少的情况下,循环起来好慢。
2.使用.UsedRange方法
'定义一个储存行号的变量
Dim num
'使用UsedRange获取的行号赋值给num
num = ActiveSheet.UsedRange.Rows.Count
'输出num,也就是得到的行号
MsgBox num
代码执行后可以获取到最后一行行号
不足点:
单元格存在有格式的单元格,就会算上带有格式的单元格,得到的行号就会有问题
3.使用Range().End(xlDown)方法
'定义一个储存行号的变量
Dim num
'使用Range("").End(xlDown)获取的行号赋值给num
num = ActiveSheet.Range("a1").End(xlDown).Row
'输出num,也就是得到的行号
MsgBox num
代码执行后可以获取最后一行行号
不足点:
如何列数据中有空白行,就得出错误的行号
如果最后的数据行被隐藏,也会得到错误行号
4.使用Range().End(xlUp)方法
'定义一个储存行号的变量
Dim num
'使用Range("").End(xlUp)获取的行号赋值给num
num = ActiveSheet.Range("a" & Rows.Count).End(xlUp).Row
'输出num,也就是得到的行号
MsgBox num
代码执行后可以获得最后一行数据行号
不足点:
如果整个表格的最后行有数据,就会得到错误行号
如果最后的数据行被隐藏,也会得到错误行号
5.使用Cells.SpecialC