我需要计算列中包含特定值的单元格数。我目前正在使用以下代码:
iVal = Application.WorksheetFunction.COUNTIF(Range("A:A"), "SAL")
但是,我现在需要计算有多少个单元格包含
SAL
,或 PRE
答案 0 :(得分:18)
您可以使用VBA
等效的标准COUNTIF公式(可以使用多个参数)。这可以根据需要进行扩展
标准公式
=SUM(COUNTIF(A:A, {"SAL","PRE"}))
VBA等效
MsgBox Evaluate("Sum(COUNTIF(A:A,{""PRE"",""SAL""}))")
答案 1 :(得分:8)
最快的方法就是做2个COUNTIFs:
iVal = Application.WorksheetFunction.CountIf(Range("A:A"), "SAL") + Application.WorksheetFunction.CountIf(Range("A:A"), "PRE")
答案 2 :(得分:2)
为什么不使用CountIfs
函数?
示例:
Application.CountIfs(CR1_range, V_1, CR2_range, V_2, CR3_range, V_3, CR4_range, V_4)
CR1_range显然是你的范围而V_1是你的变量
编辑:哎呀!刚看到它必须是一个OR语句,我的答案只适用于一个AND语句(没有任何人有兴趣删除以供参考)
答案 3 :(得分:0)
以下效果很好: -
Dim val1 as string, val2 as string
val1 = "value1"
val2 = "value2"
count = Application.WorksheetFunction.CountIfs(ThisWorkbook.Names("firstname").RefersToRange, val1 , ThisWorkbook.Names("secondname").RefersToRange, val2)
此webpage有助于了解Excel中的命名范围。