Table of contents
ǞǞǞ 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 我希望这篇文章对你非常有益。 如果你对这个主题有任何疑问,请随时提问。