获取特定列-VBA中填充的行数

时间:2016-08-02 02:05:22

标签: arrays excel vba excel-vba

现在我可以使用以下命令获取用VBA中的值填充的行数:

Rows(Rows.Count).End(xlUp).Row

但是这行只能获得第一列中的行数。对于任何给定的列,我该怎样做才能得到相同的结果?

感谢。

编辑:回答只是将列作为Rows()的参数传递

2 个答案:

答案 0 :(得分:1)

问题是如何获取特定列中的已填充行数。这与在列中获取最后使用的行号不同。

以下是如何计算列中的空白单元格数

WorksheetFunction.CountA(Columns(2))

有很多方法可以引用细胞范围。以下是一些例子:

Sub Examples()

    Debug.Print "The last used row in the second column"
    Debug.Print Columns(2).Rows(Rows.Count).End(xlUp).row
    Debug.Print
    Debug.Print "The last used row in the second column"
    Debug.Print Columns("B").Rows(Rows.Count).End(xlUp).row
    Debug.Print
    Debug.Print "The last used row in the second column using Find"
    Debug.Print Columns("B").Find(What:="*", SearchDirection:=xlPrevious).row
    Debug.Print
    Debug.Print "The last used row on the ActiveSheet using Find"
    Debug.Print Cells.Find(What:="*", SearchDirection:=xlPrevious).row
    Debug.Print
    Debug.Print "The last used row in the second column"
    Debug.Print Cells(Rows.Count, 2).End(xlUp).row
    Debug.Print
    Debug.Print "The last used row in the second column"
    Debug.Print Cells(Rows.Count, "B").End(xlUp).row
    Debug.Print
    Debug.Print "The last used row in the second column"
    Debug.Print Range("B" & Rows.Count).End(xlUp).row
    Debug.Print
    Debug.Print "The last used row on the ActiveSheet, this is not limited to Column A"
    Debug.Print Range("A1").SpecialCells(xlCellTypeLastCell).row

    Debug.Print
    Debug.Print "The number of non-blank cells in Column B"
    Debug.Print WorksheetFunction.CountA(Columns(2))

End Sub

答案 1 :(得分:0)

Debug.Print Range("A1").SpecialCells(xlCellTypeLastCell).Row

上面的行表示当前工作表中没有使用任何行。