如果有数据,我使用下面的内容只会发出一段代码,
If WorksheetFunction.CountIf(wksdata.Range("D:D"), "ASM001") > 0 Then
但是,我需要它在CountIfs下工作,因为有些工作表有多个标准,例如下面的示例,它使用BIR001,BIR004,BIR006,ITI001。如果其中至少有一个,我需要它继续。
If WorksheetFunction.CountIfs(wksdata.Range("D:D"), "BIR001", wksdata.Range("D:D"), "BIR004", wksdata.Range("D:D"), "BIR006", wksdata.Range("D:D"), "ITI001") > 0 Then
你能找到我的错误吗?
答案 0 :(得分:3)
我意识到我应该在一起添加4个CountIf函数。
If (WorksheetFunction.CountIf(wksdata.Range("D:D"), "BIR001") _
+ WorksheetFunction.CountIf(wksdata.Range("D:D"), "BIR004") _
+ WorksheetFunction.CountIf(wksdata.Range("D:D"), "BIR006") _
+ WorksheetFunction.CountIf(wksdata.Range("D:D"), "ITI001")) > 0 Then
看起来有点乱,但做得好!
答案 1 :(得分:3)
这将是一个让它不那么混乱的好方法:
Dim count As Integer
With Application.WorksheetFunction
count = .CountIf(wksdata.Range("D:D"), "BIR001") + _
.CountIf(wksdata.Range("D:D"), "BIR004") + _
.CountIf(wksdata.Range("D:D"), "BIR006") + _
.CountIf(wksdata.Range("D:D"), "ITI001")
End With
If (count > 0) Then
答案 2 :(得分:0)
这可能是一个使用方括号的机会,但你不应该使用完整的列引用。
If CBool([SUMPRODUCT(--(D1:D99999={"BIR001","BIR004","BIR006","ITI001"}))]) Then