我正在使用从“查找工作表的最后一行”:Error in finding last used cell in Excel with VBA的解决方案中找到的这段代码。 如何调整它来回答我的问题? 抱歉,无法解决在此处发布代码的错误。 谢谢。
答案 0 :(得分:2)
想象一下A:A
列中的以下数据:
现在可以循环使用您的列了:
Sub Test()
With Sheet.Range("A:A") 'Change to your own sheets CodeName
For Each cl In .SpecialCells(xlCellTypeConstants, 1)
Debug.Print cl.Address
Next cl
End With
End Sub
由于您说有数字值,因此我们可以将A:A
列与SpecialCells
进行迭代。使用xlCellTypeConstants
仅包含其中包含常量的单元格,然后添加XlSpecialCellsValue
枚举(对于数字常量,仅添加xlNumbers
或1
),然后可以进行循环。
它只会迭代包含数值的单元格。因此,您无需尝试查找最后一行,也不需要循环所有单元格并检查值是否为数字。此方法还将允许您使用的范围内的其他文本数据类型值。
如果您必须获取包含数值的最后一行,我们可以稍微更改一下代码以查看Areas
集合中的最后一个Area
(因为我们可能会有不连续的{ {1}}对象)。现在,获取最后一行可能是:
Range
出于可读性考虑,您可能会发现以下更简单:
Sub Test()
Dim rng As Range
Dim lr As Long
With Sheet1.Range("A:A") 'Change to your own sheets CodeName
Set rng = .SpecialCells(xlCellTypeConstants, 1)
lr = rng.Areas(rng.Areas.Count).Cells(rng.Areas(rng.Areas.Count).Count, 1).Row
End With
End Sub
这将无需使用数组公式/函数来检索包含数值的最后一行。