如何使用VBA统计字符串中某个特定字符

2022-06-04 10:02:16 浏览数 (1)

标签:VBA,Split函数

如果要统计某单元格中指定的某特定字符的数量,可以使用LEN/SUBSTITUTE函数组合的经典公式(假设字符串位于单元格B2):

=LEN(B2)-LEN(SUBSTITUTE(LOWER(B2),"f",""))

示例如下图1所示。

图1

如果要统计单元格区域(示例中为单元格区域B2:B5)中包含指定的某特定字符的数量,可以使用下面的公式:

=SUMPRODUCT(LEN(B2:B5)-LEN(SUBSTITUTE(LOWER(B2:B5),"f","")))

示例如下图2所示。

图2

如果将上述两种情况使用VBA来实现,应该如何编写代码呢?

也很简单。

如果要统计单元格B2中字符“f”的数量,使用代码:

UBound(Split(LCase(Range("B2")),"f"))

代码使用Split函数以字母“f”为分隔符对字符串拆分,拆分后获得的数组上限值与字符数相等。

如果要统计单元格区域B2:B5中字符“f”的数量,使用代码:

UBound(Split(LCase(Join(WorksheetFunction.Transpose(Range("B2:B5")))),"f"))

代码使用Join函数将单元格区域中的字符串联接,然后使用Split函数以字母“f”为分隔符对字符串拆分,拆分后获得的数组上限值与字符数相等。

有兴趣的朋友可到知识星球App的完美Excel社群下载示例文档。

相关参考:

示例详解VBA的Split函数

Split函数与Join函数

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

0 人点赞