我一直在尝试使用vba
找到特定列的行数我发现它可以通过使用两种方法来完成,所有这三种方法都涉及范围(我通过简单的谷歌搜索找到了这个,然后编辑我发现的符合我需要的方法)
但是我觉得如果我理解他们每个人做了什么以及他们彼此之间的差异会更适合我
我使用的两个代码如下:
i = Application.CountA(Range("A:A"))
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
有谁能请解释我这两个是如何工作的,两者有什么区别?此外,如果你知道任何其他有效的方式,如果你在这里分享它会很有帮助。
答案 0 :(得分:3)
i = Application.CountA(Range("A:A"))
这将返回A列中包含值的所有单元格的计数。它们不必是连续的单元格。
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
这将转到A列底部的最后一个单元格,然后按下End键,然后按向上箭头键。这将返回包含值的列中最后一个单元格的行索引。
答案 1 :(得分:2)
使用Find
是优越的
xlUp
不同,是为了隐藏单元格(但不是过滤掉的单元格)查找方法
Sub GetLastA()
Dim rng1 As Range
Set rng1 = Columns("A:A").Find("*", [a1], xlFormulas)
If Not rng1 Is Nothing Then
MsgBox "last row is " & rng1.Row
Else
MsgBox "no used cells found", vbCritical
End If
End Sub
答案 2 :(得分:0)
Sub row_cownt()
Dim R As Double
Dim C As Double
R = Cells.Find(What:="*", LookIn:=xlValues, SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
C = Cells.Find(What:="*", After:=[A1], SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
MsgBox "Row =" & R
MsgBox "Column =" & C
End Sub