Vba:如何计算具有特定文本的单元格
您可以使用以下基本语法来使用 VBA 计算包含特定文本的区域中的单元格数量:
SubCountCellsWithText ()
Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub
此特定示例计算A2:A13范围内包含“avs”的单元格数量,然后将结果分配给单元格D2 。
注意:星号 ( * ) 在Countif函数中用作通配符。
如果您想在消息框中显示单元格数量,可以使用以下语法:
SubCountCellsWithText ()
Dim cellCount As Integer
'Calculate number of cells that contain 'avs'
cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), "* avs* ")
'Display the result
MsgBox "Cells that contain avs : " & cellCount
End Sub
以下示例展示了如何在 Excel 中的以下数据集(包含有关各种篮球运动员的信息)中实际使用这些方法:
示例 1:使用 VBA 对包含特定文本的单元格进行计数并在单元格中显示结果
假设我们要统计团队名称中包含“avs”的单元格数量,并将结果显示在特定单元格中。
我们可以创建以下宏来执行此操作:
SubCountCellsWithText ()
Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub
当我们运行这个宏时,我们会收到以下输出:
请注意,单元格D2包含值5 。
这告诉我们, A2:A13范围内有 5 个单元格的团队名称中包含“avs”。
示例 2:使用 VBA 对具有特定文本的单元格进行计数并在消息框中显示结果
假设我们想要计算包含“avs”的单元格数量并将结果显示在消息框中。
我们可以创建以下宏来执行此操作:
SubCountCellsWithText ()
Dim cellCount As Integer
'Calculate number of cells that contain 'avs'
cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
'Display the result
MsgBox "Cells that contain avs : " & cellCount
End Sub
当我们运行这个宏时,我们会收到以下输出:
消息框告诉我们有5 个单元格的团队名称中包含“avs”。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务:
VBA:“如果单元格包含”的简单公式
VBA:如何计算字符串中字符的出现次数
VBA:如何检查一个字符串是否包含另一个字符串