首页 > 解决方案 > 在 VBA 中使用循环计算行数?

问题描述

我知道如何使用以下语法计算行数(并以消息表单的形式显示结果):

Sub CountRows1()
    Dim last_row As Long
    last_row = Cells(Rows.Count, 1).End(xlUp).Row
    MsgBox (last_row)
End Sub

我想知道是否有另一种方法可以在不声明变量的情况下执行此操作,而是选择一个范围,然后使用偏移量。

我正在考虑以下内容,但不知道从哪里开始:

Sub UseLoop ()
    Range ("A1").Select 
    Do Until Active.Cell.Value = ""
        -- Something to do the counting, can't seem to get this part right 
        ActiveCell.Offset (1,0).Select 
    Loop 
End Sub

标签: vbaloops

解决方案


嗨,这样的计数行太危险了。(xl下)

因为如果你有 a5 空的 eample 。但是a1到a4是满的,a6是满的。您的结果将是 a6(发现 a5 为空,并且一行偏移量等于 a6,这是错误的)..

更好的方法是下到 Excell 的最后一行(第 1048572 行),然后使用 xlUp 这有点好,但它有边缘情况太悬停可能会更少!并且它没有找到(考虑)中间的空行。

cells(rows.count,1).xlUp.offset(1,0)

最好的方法:需要声明 VARIABLE !!!

declare a var by initial values of 1 

dim i as integer 
i=1

do 
 
i=i+1


while (cells(x,1).value !=null )

现在我就是你想要的。!


推荐阅读