VBA如果标识

如果有数据,我使用下面的方法只挑出一段代码,

If WorksheetFunction.CountIf(wksdata.Range("D:D"), "ASM001") > 0 Then 

但是,我也需要它在CountIfs下工作,因为有些工作表有多个标准,比如下面使用BIR001,BIR004,BIR006,ITI001的示例。 如果其中至less有一个,我需要继续。

 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 

你能帮我找出我的错误吗?

这将是一个很好的方式,使其不那么凌乱:

 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 

我意识到我应该一起添加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 

看起来有点乱,但是做这个工作!

这可能是玩一些方括号的机会,但是你不应该使用完整的列引用。

 If CBool([SUMPRODUCT(--(D1:D99999={"BIR001","BIR004","BIR006","ITI001"}))]) Then