如何在Excel中使用VBA计算列中数据的行数(9种方法)

  • Share This
Hugh West

如果你正在寻找一些最简单的方法来计算列中数据的行数,使用Excel VBA 所以,让我们从我们的主要文章开始,了解更多关于在一列中计算数据的行的信息。

下载工作手册

用数据计算行数.xlsm

用Excel VBA计算列中数据的行数的9种方法

在这里,我们有以下数据集,其中包含一家公司的销售记录。 我们将用这个数据集中不同的列的数据来解释基于某一列的数据来计算行的不同方法。

我们已经使用了 微软Excel 365 在这里,你可以根据你的方便使用任何其他版本。

方法一:使用VBA的Rows.Count属性来计算Excel中列中有数据的行数

在这里,我们将计算出 销售 栏中的产品的销售价值,使用 行数.计数属性 VBA .

步骤-01 :

➤ 转到 开发商 标签>>。 视觉基础 选择。

然后,在 Visual Basic编辑器 将打开。

➤ 转到 插入 标签>>。 模块 选择。

在这之后,一个 模块 将被创建。

步骤-02 :

➤ 编写以下代码

 Sub countrows1() Dim X As Integer X = Range("D4:D11").Rows.Count MsgBox "Number of used rows is " & X End Sub 

在这里,我们已经宣布 X 作为 整数 , "D4:D11" 是我们计算行数所依据的范围,最后我们将行号分配给了 X .

一个信息框( MsgBox )将给我们的结果是总行数。

➤ 按 F5 .

然后,你将得到有数据的总行数为 8 的。 销售 栏中的一个消息框。

阅读更多。 Excel VBA计算有数据的行数(4个例子)

方法-2:使用结束属性来计算列中有数据的行数

在本节中,我们将使用 末端属性 VBA 来计算有销售值的行的数量。 销售 列。

阶梯 :

关注 步骤-01 方法一 .

➤ 编写以下代码

 Sub countrows2() Dim X As Integer X = Range("D4").End(xlDown).Row MsgBox "Number of used rows is " & (X - 3) End Sub 

在这里,我们已经宣布 X 作为 整数 , "D4" 是范围的起始值,我们在此基础上计算行数,最后我们将行号分配给了 X . X 会给我们最后使用的行数,而不是这一列的总行数。 所以,为了得到总行数,我们已经减去了 3 ( 起始行数-1=4-1=3 ) 从 X .

一个信息框( MsgBox )将出现总行数。

➤ 按 F5 .

此后,你将有 8 的总行数,即为 销售 栏中的一个消息框。

阅读更多:如何在Excel中用数据计算行数(4个公式)。

方法三:使用Rows.Count属性和End属性的组合

在这里,我们将使用两个属性的组合,即 VBA 行数.计数属性 末端属性 的总行数。 销售 列。

阶梯 :

关注 步骤-01 方法一 .

➤ 编写以下代码

 Sub countrows3() Dim X As Integer X = Cells(Rows.Count, 4).End(xlUp).Row MsgBox "使用的行数是" & (X - 3) End Sub 

在这里,我们已经宣布 X 作为 整数 , 4 (行。计数,4) 是为 销售 我们根据哪一列来计算行数,最后我们将行号分配给 X .

X 将返回最后使用的行数,而不是这一列的总行数。 因此,为了得到总行数,我们已经减去了 3 ( 起始行数-1=4-1=3 ) 从 X .

一个信息框( MsgBox )将出现总行数。

➤ 按 F5 .

之后,我们将得到 8 的总行数,即为 销售 栏中的一个消息框。

相关内容:如何在Excel中用多个标准计算行数(6种方法)

方法四:在Excel中使用VBA选择属性来计算列中数据的行数

你可以使用 选择属性 还可以根据数据的大小来计算总行数。 销售 列。

阶梯 :

➤ 跟随 步骤-01 方法一 .

➤ 编写以下代码

 Sub countrows4() Dim X As Integer X = Selection.Rows.Count MsgBox "Number of used rows is " & X End Sub 

在这里,我们已经宣布 X 作为 整数 ,所选范围的行将在这里被计算,最后,我们将行号分配给了 X .

一个信息框( MsgBox )将给我们的结果是总行数。

然后,我们必须返回到主表。

➤ 选择范围 销售 栏,然后,到 开发商 标签>>。 巨集 选择。

在这之后, 宏观 对话框将弹出。

➤ 选择 巨集名称 箭牌4 ,然后,按 运行 选择。

最后,我们将得到以下信息框,表示 "使用的行数为8" .

阅读更多:如何在Excel中用VBA计算行数(5种方法)

方法-5:使用FIND函数计算列中有数据的行数

在这里,我们将使用 查找功能 来计算有文本字符串的行在 地区 列。

阶梯 :

关注 步骤-01 方法一 .

➤ 编写以下代码

 Sub CountRows5() Dim X As Integer Dim rng As Range Set rng = Range("C4:C11") With rng X = .Find(What:="*", LookIn:=xlValues, SearchDirection:=xlPrevious).Row End With MsgBox "Number of used rows is " & (X - 3) End Sub 

在这里,我们已经宣布 X 作为 整数 , rng 作为 范围 , "C4:C11" 是我们计算行数所依据的范围,最后我们将其分配给了 rng .

我们已经使用了 语句,以避免重复使用对象的名称,如 rng .

使用 查找功能 , X 会给我们最后使用的行数,而不是这一列的总行数。 所以,为了得到总行数,我们已经减去了 3 ( 起始行数-1=4-1=3 ) 从 X .

一个信息框( MsgBox )将出现总行数。

➤ 按 F5 .

最后,你将有 8 的总行数,即为 销售 栏中的一个消息框。

相关内容:Excel计数可见行(公式和VBA代码)

类似的阅读。

  • 在Excel中用数据透视表计算组内行数(分步指南)
  • Excel VBA:计算工作表中的行数(5个例子)

方法-6:使用VBA计算列中有数据的非空白行

这里,我们有一些空白单元格在 销售 列(我们已经为这种方法删除了一些值),并使用一个 VBA 代码中,我们将只计算有数值的行的总数。

阶梯 :

关注 步骤-01 方法一 .

➤ 编写以下代码

 Sub countrows6() Dim X As Long Dim Y, rng As Range Set rng = Range("D4:D11") With rng For Each Y In .Rows If Application.CountA(Y)> 0 Then X = X + 1 End If Next End With MsgBox "Number of used rows is " & X End Sub 

在这里,我们已经宣布 X 作为 , Y ,以及 rng 作为 范围 , "D4:D11" 是我们计算行数所依据的范围,最后我们将其分配给了 rng .

ǞǞǞ 循环将检查这个区域的每个单元格是否包含任何值,使用 COUNTA函数 而对于有价值的单元格。 X 将被递增为 1 每次都是如此。

最后,我们将通过一个信息框获得有非空白单元格的总行数。

➤ 按 F5 .

最终,你会有 5 的非空白行的总数。 销售 栏中的一个消息框。

阅读更多:如何在Excel中用VBA计算过滤的行数(分步指南)

方法-7:计算具有特定值的行数

在这里,我们将计算销售值为的行的总数。 $2,522.00 销售 列。

阶梯 :

➤ 跟随 步骤-01 方法一 .

➤ 编写以下代码

 Sub countrows7() Dim X As Long Dim Y, rng As Range Set rng = Range("D4:D11") With rng For Each Y In .Rows If Application.CountIf(Y, 2522)> 0 Then X = X + 1 End If Next End With MsgBox "Number of used rows is " & X End Sub 

在这里,我们已经宣布 X 作为 , Y ,以及 rng 作为 范围 , "D4:D11" 是我们计算行数所依据的范围,最后我们将其分配给了 rng .

ǞǞǞ 循环将检查这个区域的任何单元格是否包含销售值 2522 使用 COUNTIF功能 并为具有此值的单元格。 X 将被递增为 1 每次都是如此。

最后,我们将得到总的行数,其值为 2522 通过一个信息框。

➤ 按 F5 .

最终,你将有 3 的总行数,即为 销售 列,其中包含销售价值的 $2,522.00 在一个信息框中。

阅读更多:Excel VBA:用特定数据计算行数(8个例子)。

方法8:计算数值大于特定值的行数

在这一节中,我们将计算数值大于的行的总数。 $3000.00 销售 列。

阶梯 :

➤ 跟随 步骤-01 方法一 .

➤ 编写以下代码

 Sub countrows8() Dim X As Long Dim Y, rng As Range Set rng = Range("D4:D11") With rng For Each Y In .Rows If Application.CountIf(Y, ">3000")> 0 Then X = X + 1 End If Next End With MsgBox "Number of used rows is " & X End Sub 

在这里,我们已经宣布 X 作为 , Y ,以及 rng 作为 范围 , "D4:D11" 是我们计算行数所依据的范围,最后我们将其分配给了 rng .

ǞǞǞ 循环将检查这个范围内的任何单元格是否包含销售值大于 3000 使用 COUNTIF功能 (或者你可以尝试任何其他条件,如小于、大于或等于等),以及具有此值的单元格。 X 将被递增为 1 每次都是如此。

最后,我们将得到数值大于的总行数。 3000 通过一个信息框。

➤ 按 F5 .

之后,你将有 3 的总行数,即为 销售 列,其中包含大于的销售值 $3,000.00 在一个信息框中。

阅读更多:Excel如何用数值计算行数(8种方法)

方法-9:用一个特定的文本字符串计算行数

我们将在这里得到包含的行数 苹果 完全或部分地在 产品 列。

阶梯 :

➤ 跟随 步骤-01 方法一 .

➤ 编写以下代码

 Sub countrows9() Dim X As Long Dim Y, rng As Range Set rng = Range("B4:B11") With rng For Each Y In .Rows If Application.CountIf(Y, "*apple*")> 0 Then X = X + 1 End If Next End With MsgBox "Number of used rows is " & X End Sub 

在这里,我们已经宣布 X 作为 , Y ,以及 rng 作为 范围 , "B4:B11" 是我们计算行数所依据的范围,最后我们将其分配给了 rng .

ǞǞǞ 循环将检查该区域的任何单元格是否包含文本字符串 "应用" 使用 COUNTIF功能 (在这里,它将通过使用以下方法计算完全匹配和部分匹配 星号 符号的前后),以及具有此值的单元格。 X 将被递增为 1 每次都是如此。

最后,我们将得到带有文本字符串的总行数 苹果 通过一个信息框。

➤ 按 F5 .

然后,你将有 2 的总行数,即为 产品 包含文本字符串的列 苹果公司 菠萝 在一个信息框中。

阅读更多。 如何在Excel中用文本计算行数(最简单的8种方法)

练习部分

为了方便自己的练习,我们提供了一个 实践 的工作表中,像下面这样,在一个名为 实践 .请你自己去做。

总结

在这篇文章中,我们试图介绍用Excel计算列中数据的行数的方法。 VBA 希望你会发现它很有用。 如果你有任何建议或问题,欢迎在评论区分享。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.