Excel VBA商店标识为多个或条件

我正在使用VBA Countifs根据条件得到一定数量的计数。 现在我需要条件来计数。

下面的代码工作计数“无video”行和非“无video”行。 但是我想统计“无video”或“无数据”作为单个输出,而另一个没有这两个。

Set R1 = appExcel.Range(cmdAudit2.Text & ":" & cmdAudit2.Text) Set R2 = appExcel.Range(cmbChoice.Text & ":" & cmbChoice.Text) NoVideos = appExcel.Application.CountIfs(R1, AuditType, R2, "No video") Videos = appExcel.Application.CountIfs(R1, AuditType, R2, "<>No video") 

我发现了一些使用多个条件“和”运算符的例子。 但是我想要“或”条件。

目前我正在使用下面的代码,使其工作

  NoVideos = appExcel.Application.CountIfs(R1, AuditType, R2, "No video") NoAudited = appExcel.Application.CountIfs(R1, AuditType, R2, "Not audited") Videos = appExcel.Application.CountIfs(R1, AuditType, R2, "<>No video") Videos = Val(Videos) - Val(NoAudited) NoVideos = Val(NoVideos) + Val(NoAudited) 

有没有什么好的方法可以用单一标识来完成。

CountIfs不允许使用这样的OR条件。 您可以在一行代码中添加或减lessCountifs,并避免中间步骤。 你也可以使用SumProduct,如下所示:

 = application.WorksheetFunction.SumProduct(((R2="No Video")*(R2="Not Audited"))+(R1 = AuditType)) 

以上是空码,您需要使SumProduct在Excel中工作并logging它以获取正确的语法。 有关使用SumProduct的信息,请参阅此OzGrid页面

请注意,在上面的公式中,乘法运算创buildAND操作,并且添加创build和OR运算。