VBA在if语句中嵌套countif

时间:2019-03-14 16:23:31

标签: excel vba

使用VBA,我有一个countifs公式,该公式根据值单元格F3返回一个数字。 F3是数据验证。我可以根据自己的公式挑选出各种情况,但是我在选择“所有”值时遇到了麻烦。研究时,我想到了“ *”作为提取所有内容(通配符)的价值。有条件的格式化不会让我将该名称掩盖为其他名称,因为它是星星。关于如何将名称显示为其他名称,或者更改我的公式以在AF列中提取所有名称的任何想法?非常感谢你!马特

Sheets("Macro").Range("M54") = _
    Application.WorksheetFunction.CountIfs(.Range("E5:E" & finRow), _
         "=Addition", .Range("N5:N" & finRow), _
         "=" & Sheets("Macro").Range("$D$3").Value, .Range("AF5:AF" & finRow), _
         "=" & Sheets("Macro").Range("$F$3").Value)

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题(也就是说,当前F3单元格中的数据验证列表可以与您的VBA代码一起正常使用,但是您正在寻找一种方法来将星号显示为另一个单词,例如“全部” ),那么我建议将您的数据验证列表从显示星号更改为显示“ ALL”,然后修改VBA以适应该更改。例如:

If Sheets("Macro").Range("F3").Value = "ALL" Then

Sheets("Macro").Range("M54") = _
    Application.WorksheetFunction.CountIfs(.Range("E5:E" & finRow), _
         "=Addition", .Range("N5:N" & finRow), _
         "=" & Sheets("Macro").Range("$D$3").Value, .Range("AF5:AF" & finRow), _
         "=*")
Else

Sheets("Macro").Range("M54") = _
    Application.WorksheetFunction.CountIfs(.Range("E5:E" & finRow), _
         "=Addition", .Range("N5:N" & finRow), _
         "=" & Sheets("Macro").Range("$D$3").Value, .Range("AF5:AF" & finRow), _
         "=" & Sheets("Macro").Range("$F$3").Value)
End If