计算另一个工作表中的行数

时间:2015-01-04 06:35:17

标签: excel vba excel-vba with-statement

我查看了建议的问题以找到问题的答案。 最近的问题叫做: 计算不同Excel工作表中的行数 Count number of rows in a different Excel Sheet

该问题的解决方案对我不起作用。

我正在尝试计算与活动工作表不同的工作表中某个范围内的行数。 这是我的代码:

Sub verbflashcards()

Dim wordcount As Long

With Worksheets("Verbs")
wordcount = .Range(Cells(4, 1), Cells(4, 1).End(xlDown)).Rows.Count
End With

MsgBox (wordcount)
End Sub

我有一个名为Verbs的工作表,它是工作簿中的第二个工作表。我试过了:

With Verbs
With Sheet2
With Sheets("Verbs")
With Sheets("Sheet2") 

它们似乎都不起作用。

2 个答案:

答案 0 :(得分:14)

您的原始版本无效,因为未指定Cells(4, 1)Cells(4, 1).End(xlDown)的父级。当您在With ... End With块内时,使用句点(aka。或句号)为任何单元格地址添加前缀。例如:

With Worksheets("Verbs")
  wordcount = .Range(.Cells(4, 1), .Cells(4, 1).End(xlDown)).Rows.Count
End With

请注意.Cells(4, 1)而非Cells(4, 1)。句点指定您引用的单元格在工作表中("动词")。

答案 1 :(得分:4)

检查一下,希望这对您有所帮助:

Sub verbflashcards()

Dim wordcount As Long

wordcount = ActiveWorkbook.Worksheets("Verbs").Range("A4", Worksheets("Verbs").Range("A4").End(xlDown)).Rows.Count

MsgBox (wordcount)

End Sub

其中, D1 是您可以从中获取行数的列。

方法2:

Sub verbflashcards()

Dim wordcount As Long
With Sheets("Verbs")
    wordcount = .Range("A" & .Rows.Count).End(xlUp).Row
End With

MsgBox (wordcount)
End Sub

注意:您的问题有很多答案。检查此SO链接:How can I find last row that contains data in the Excel sheet with a macro?