前一篇博客讲解了如何使用
END属性
最后单元格。
Excel工作表中定位最后单元格(END属性)
在VBA中还有其他的方法可以用来定位最后单元格。工作表中示例数据如下图所示,注意其中A4为空,A6至A7单元格看似空白,其实是有内容的,A6为零长度公式,A7为空格,A8为前缀字符。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuUTN4QTM1UDM2AjMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
示例代码如下。
Sub Demo2()
Dim rngLast As Range
Set rngLast = Columns(1).Find(What:="*", After:=Range("A1"), _
LookIn:=xlFormulas, SearchDirection:=xlPrevious)
If rngLast Is Nothing Then
Debug.Print "A列全空"
Else
Debug.Print "最后单元格:"; rngLast.Address
End If
Set rngLast = Nothing
End Sub
运行示例代码,结果如下。
最后单元格:$A$7
如果A列为空,那么将在立即窗口中输出。
A列全空
【代码解析】
FIND方法
的
SearchDirection参数
设置为
xlPrevious
,其含义为从
After参数
指定的单元格开始向前查找,由于A1是A列第一个单元格,因此接下来扫描该列的最后一个单元格,
What参数
指定为星号,代表可以匹配任何单元格内容。
注意:由此示例可以看出,使用
FIND方法
定位最后单元格时,仅有前缀字符的单元格(即A8)不包含在内。