【问题标题】:Count the number of rows in another sheet [duplicate]计算另一个工作表中的行数
【发布时间】:2015-03-02 00:29:22
【问题描述】:

我查看了建议的问题以找到我的问题的答案。 最接近的问题称为: 计算不同 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") 

它们似乎都不起作用。

【问题讨论】:

    标签: vba excel with-statement


    【解决方案1】:

    由于未指定 Cells(4, 1)Cells(4, 1).End(xlDown) 的父级,您的原始文件无法正常工作。当您在 With ... End With 块内时,在任何单元格地址前加上句点(又名 . 或 句号)。示例:

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

    注意.Cells(4, 1) 而不是Cells(4, 1)。句点指定您所指的单元格在 Worksheets("Verbs") 中。

    【讨论】:

    • 是的,你完全正确!!!使用 WITH 块时必须小心。
    【解决方案2】:

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

    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 是您可以从中获取行数的列。

    方法二:

    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?

    【讨论】:

    • 有效!所以必须在范围内第二次引用工作表?
    • 有几种方法可以实现相同的效果,您可以选择任何一种。检查我编辑的答案。
    • 我认为.Range("D1"... 本来是.Range("A4"...。看来您从Cells(4, 1) 调换了 rc
    • 这不一定是使用的行数 - 它是 A 列中数据的最后一行(A1 可以是空白等)。
    猜你喜欢
    • 1970-01-01
    • 2020-06-16
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    相关资源
    最近更新 更多