每当我运行While .... Wend循环时,我会使用基于这个一般想法的脚本。
Sub Macro1
Dim Rng as Range
Dim i as Long
i = 2
While i <= 10000
Set Rng = ("A" & i)
If Rng = Rng.Offset(0,1) Then
i = i + 1
ElseIf.....
EndIf
Wend
End Sub
我没有详细说明与我的问题无关的部分脚本。无论如何,我所询问的是“当我<= 10000时”。当然,这适用于大多数基于小于10,000行的列的任务。但是,我知道这不是很好。如果我想编写一个适用于所有工作表的脚本,无论列A是否包含10或100000行,我如何调整此开口以反映这一点?类似的东西:
Dim X as long
Set X to the number of rows in column A
While i <= X
这样的事情会起作用吗? 提前谢谢。
答案 0 :(得分:2)
您可以通过多种方式找到最后一行,但大多数都使用End():
你可以:
LastRow = Range("A1").End(xlDown).Row
或
LastRow = Range("B10000").End(xlUp).Row
或作为上一个使用ActiveSheet.Rows.Count的答案。逗号之后的数字是列号,所以:
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 3).End(xlUp).Row
将使用C列来执行End操作。
P.S。 &#34; -4162&#34;只是&#34; xlUp&#34;的数字形式。恒定。
答案 1 :(得分:1)
你得到一张纸的最后一行:
Dim LastRow as Long
LastRow = Activesheet.Cells(Activesheet.Rows.Count, 1).End(-4162).Row
-4162是从另一个程序执行自动化时不可用的常量xlUP的值。
这样做会转到指定列的底部(.Cells中的第二个值),然后使用值向上移动到最后一行,类似于按Ctrl+Up
然后使用
While i <= LastRow