我是新来的,我希望使用 Excel VBA 返回工作表中最后使用的单元格。
我看着使用 VBA 在 Excel 中查找上次使用的单元格时出错)但这并没有回答我遇到的两个问题:
-
The .Cells.Find(...).Row
方法在我的代码中花费的时间太长。
-
我的“最后使用的单元格”的含义可能很奇怪......单元格可以是空白的。我想获取具有最后使用的单元格的列,并将其与具有最后使用的单元格的行配对。
解释一下:假设一张工作表是空的,除了中的数据A1:C3
, D2
and B4
. (附件1)
我感兴趣的最后一个单元格是D4
因为我想要工作表中的最后一个单元格包含工作表中的所有数据。
现在我已经解释了我正在寻找的内容,任何人都可以提供有关以下任一方面的建议
- 如何使 cells.find 运行得更快或
- 在工作表中查找“最后一个单元格”的另一种可靠方法?
谢谢你!
你尝试过这个吗?
Dim r As Range
Set r = Sheet1.UsedRange.SpecialCells(xlCellTypeLastCell)
Debug.Print r.Address
您的示例的输出:
$D$4
众所周知,UsedRange 并不总是与实际使用的数据范围。一些解决方法是使用CurrentRegion
:
Dim r As Range
With Sheet1.Range("A1").CurrentRegion
Set r = Sheet1.Cells(.Rows.count, .Columns.count)
End With
Debug.Print r.Address
另外,如果数据不开始于A1
,也许是这个:
With Sheet1.Cells.Find("*").CurrentRegion
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)