Excel中的VBA COUNTIF函数(6个例子)

  • Share This
Hugh West

ǞǞǞ COUNTIF 在Excel中,函数被用来计算一个区域内符合给定条件的单元格的数量。 在这篇文章中,我们将向你展示如何使用 COUNTIF 在Excel中的函数与 VBA 宏观。

下载工作手册

你可以从这里下载免费的练习Excel工作簿。

COUNTIF函数与VBA.xlsm

Excel中的COUNTIF函数

  • 语法

工作表函数.CountIf( 氩气1 作为范围。 氩气2 )为双数

  • 参数
参数 必备/可选 数据类型 描述
氩气1 需要 范围

从计数单元格的范围。

氩气2 需要 变体 一个数字、表达式、单元格引用或文本,定义哪些单元格需要计数。 例如,表达式可以是20、"20"、">20"、"水果",或B2。
  • 返回类型

值为双数

在Excel中用VBA使用COUNTIF函数的6个例子

在本节中,你将学习如何使用 COUNTIF 在Excel中用函数来计算文本、数字等的数量。 VBA 代码。

1.Excel VBA中带有COUNTIF的WorksheetFunction

Excel的 工作表函数 可以用来调用Excel中的大多数其他函数,这些函数可以在 插入功能 在EXCEL中的对话框和 COUNTIF 函数就是这些函数之一。

通过上述例子,我们将学习如何使用 工作表函数 COUNTIF 来计算数据,用 VBA 在Excel中。

步骤。

  • 新闻 Alt + F11 在你的键盘上,或进入标签 开发人员 -> Visual Basic 打开 Visual Basic编辑器 .

  • 在弹出的代码窗口中,从菜单栏中,点击 插入 -> 模块 .

  • 复制以下代码并将其粘贴到代码窗口。
 Sub ExCOUNTIF() Range("B13") = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3" ) End Sub 

你的代码现在可以运行了。

  • 新闻 F5 在你的键盘上选择"",或从菜单栏中选择 运行-> 运行Sub/UserForm 你也可以直接点击 小的播放图标 子菜单栏中的 "运行宏"。

我们想知道在我们的数据集中有多少数字是小于3的。所以在运行代码后,我们得到的结果是4,这是我们数据集中小于3的数字的数量。

阅读更多。 如何在两个数字之间使用 COUNTIF (4种方法)

2.COUNTIF函数用于计算Excel中的特定文本

如果你想计算任何特定的文本,如在Excel工作表中有多少个城市或名字或食物等,那么你可以利用 COUNTIF 功能在 VBA .

从上面的例子中,我们将学习如何使用 COUNTIF 来计算这个名字有多少次 约翰 在我们的数据集中出现了 VBA 宏观。

步骤。

  • 与之前的方法一样,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub CountifText() 'input countName = WorksheetFunction.CountIf(Range("B5:B10"), "John") 'output Range("E7") = countName End Sub 

你的代码现在可以运行了。

  • 运行 宏,你就会得到总计数。

如果你不想在代码中直接写入文本,那么你可以先将其存储在一个变量中,然后在代码中传递该变量。 就像下面的代码。

 Sub CountifText() '输入 Name = Range("E6") countName = WorksheetFunction.CountIf(Range("B5:B10"), Name) '输出 Range("E7") = countName End Sub 

阅读更多。 在Excel中用COUNTIF & LEFT函数计算开头的文本数

3.用VBA计算数字的COUNTIF函数

你可以利用 COUNTIF 函数来提取某些结果。

从上面的例子中,我们将学习如何使用 COUNTIF 来计算在我们的数据集中有多少个数字是 大于1.1 VBA 宏观。

步骤。

  • 与之前的方法一样,打开 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub CountifNumber() 'input countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">1.1") 'output Range("E7") = countNum End Sub 

你的代码现在可以运行了。

  • 运行 宏,你就会得到总计数。

正如前面所讨论的,如果你不想在代码中直接写数字,那么你可以先把它存储在一个变量中,然后在代码中传递这个变量。 就像下面的代码。

 Sub CountifNumber() 'input Num = Range("E6") countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">" & Num) ' output Range("E7") = countNum End Sub 

阅读更多。 大于和小于标准的Excel COUNTIF

类似读物

  • Excel COUNTIF函数计数大于0的单元格
  • 如何在Excel中同时使用IF和COUNTIF函数
  • Excel COUNTIF计算包含另一个单元格中的文本的单元格
  • 如何在Excel中使用COUNTIF函数来计算百分比

4.COUNTIF函数与Excel中的对象范围

你可以将一组单元格分配给 范围对象 然后使用该 范围对象 来计算Excel中的数值。

步骤。

  • 开放式 Visual Basic编辑器 开发商 选项卡和 插入 a 模块 在代码窗口中。
  • 在代码窗口,复制以下代码并粘贴。
 Sub ExCountIFRange() Dim iRng As Range '分配单元格的范围 Set iRng = Range("B5:B10") '在公式中使用该范围 Range("B13") = WorksheetFunction.SumIf(iRng, ">1") '释放范围对象 Set iRng = Nothing End Sub 

你的代码现在可以运行了。

  • 运行 的代码,你将得到带有求和值的总计数。

阅读更多。 如何在Excel中对非连续范围使用COUNTIF?

5.Excel中的COUNTIF公式方法

你也可以使用 公式 和/或 公式R1C1 方法来应用一个 COUNTIF 中的一个单元格。 VBA 这些方法在进行此类操作时更加灵活。

5.1. 公式法

公式 方法允许将单元格的范围指定为 B5:B10 下面的例子中显示。

步骤。

  • 的代码窗口中。 Visual Basic编辑器 ,复制以下代码并粘贴。
 Option Explicit Sub ExCountIfFormula() Range("B13").Formula = "=COUNTIF(B5:B10,"">1")" End Sub 

你的代码现在可以运行了。

这段代码将给你提供你需要的数据的总计数。

5.2. 公式R1C1方法

公式R1C1 方法更加灵活,因为它不限制在一个固定的单元格范围内。

使用相同的数据集,我们现在将学习如何使用 公式R1C1 中的值进行计数。 VBA .

步骤。

  • 的代码窗口中。 Visual Basic编辑器 ,复制以下代码并粘贴。
 Option Explicit Sub ExCountIfFormulaRC() Range("B13").FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2")" End Sub 

你的代码现在可以运行了。

这段代码也会给你提供你所需要的数据的总计数。

如果你不想设置输出范围,那么你可以像这样写,使这段代码更加灵活。

 Option Explicit Sub ExCountIfFormulaRC() ActiveCell.FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2")" End Sub 

该公式将计算符合条件的单元格并将答案放入 细胞活性化 在你的工作表中的范围。 COUNTIF 函数必须使用 行 (R) 专栏(C) 语法。

阅读更多。 如何在Excel中的两个单元格值之间应用COUNTIF

6.将COUNTIF函数的结果分配给一个变量

如果你想在其他地方而不是在Excel数据集中使用你的公式结果,你可以将结果分配给一个变量,并在以后的代码中使用它。

ǞǞǞ VBA 这方面的代码是。

 Sub AssignCountIfVariable() Dim iResult As Double '分配变量 iResult = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") '显示结果 MsgBox "值小于3的单元格的数量是 " & iResult End Sub 

结果将显示在Excel信息框中。

阅读更多。 COUNTIF Excel实例(22个实例)

总结

这篇文章告诉你如何使用 COUNTIF 在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.