标签: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社群下载示例文档。
相关参考:
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。