Vba 使用多个条件查找单列中部分字符串的出现次数

Vba 使用多个条件查找单列中部分字符串的出现次数,vba,excel,Vba,Excel,我有一个工作表Employee_log,它在a列的单个字符串中包含每日日志的详细信息。例如: A1 : EMP1~EMP2~JOB1~JOB2... A2 : EMP1~EMP3~JOB1~JOB3... A3 : EMP2~EMP3~JOB2~JOB3... 如果出现“字符串中的字符串”,则需要将条件包装为通配符进行计数 我还将工作表阻止到中,以便将示例中的范围(例如..列1)本地化到员工日志工作表中。您的RangeA:A示例使父工作表的定义不明确 有关摆脱依赖选择和激活来实现目标的更多方法,

我有一个工作表Employee_log,它在a列的单个字符串中包含每日日志的详细信息。例如:

A1 : EMP1~EMP2~JOB1~JOB2... A2 : EMP1~EMP3~JOB1~JOB3... A3 : EMP2~EMP3~JOB2~JOB3...
如果出现“字符串中的字符串”,则需要将条件包装为通配符进行计数

我还将工作表阻止到中,以便将示例中的范围(例如..列1)本地化到员工日志工作表中。您的RangeA:A示例使父工作表的定义不明确


有关摆脱依赖选择和激活来实现目标的更多方法,请参阅。

CountIfs是一个工作表函数,不能直接在VBA中使用。直接在目标单元格中写入公式:

=CountIfs(Employee_log!A:A, "*EMP1*", Employee_log!A:A, "*JOB1*")
或者,在VBA中,使用工作表函数对象访问工作表函数:

ThisWorkbook.Sheets("Ind_Detail").Cells(1, "A") =WorkSheetFunction.CountIfs(Range("A:A"), "*EMP1*", Range("A:A"), "*JOB1*")

编辑:在Jeeped的回答中添加了通配符

Countifs是应用程序对象的成员吗?我不知道,虽然我们必须使用工作表函数,但几乎任何工作表函数都可以通过应用程序调用。我很少使用工作表函数,但我一直使用工作表函数。是的,但intellisense并没有显示它。泰铢info@SouravSarkar - .
=CountIfs(Employee_log!A:A, "*EMP1*", Employee_log!A:A, "*JOB1*")
ThisWorkbook.Sheets("Ind_Detail").Cells(1, "A") =WorkSheetFunction.CountIfs(Range("A:A"), "*EMP1*", Range("A:A"), "*JOB1*")