如何在VBA

时间:2017-11-09 18:09:17

标签: excel vba excel-vba

我有一个If条件,用于检查ID号,开始日期和结束日期。对于这个条件,我想添加一个字符串比较,检查两个不同列中的True或False值。我想知道我可以为此做另一个application.worksheetfunction.countif吗?

    If Application.WorksheetFunction.CountIf(completed.Range(COLUMN_A_IN_COMPLETE & iTotRecsD), Val2) > 0 _
    And Application.WorksheetFunction.CountIf(completed.Range(COLUMN_B_IN_COMPLETE & iTotRecsB), Val1) > 0 _
    And Application.WorksheetFunction.CountIf(completed.Range(COLUMN_C_IN_COMPLETE & iTotRecsE), Val3) > 0 _
    And (StrComp(Val4, Val5) = 0) Then

即使值完全相同,此代码也会正常运行。

编辑* Val4是worksheet2.Cells(第2行,第4列) Val5是worksheet1.Cells(第2行,第4列)

And Application.WorksheetFunction.CountIf(completed.Range(COLUMN_D_IN_COMPLETE & iTotRecsF), Val4) > 0 Then

对于字符串比较似乎没有用,我想知道为什么?

1 个答案:

答案 0 :(得分:0)

不是使用多个countIf,而是使用单个countIf来完成工作。

    If (Application.WorksheetFunction.CountIfs(completed.Range(COLUMN_A_IN_COMPLETE & iTotRecsD), Val2, _
        completed.Range(COLUMN_B_IN_COMPLETE & iTotRecsB), Val1, _
        completed.Range(COLUMN_C_IN_COMPLETE & iTotRecsE), Val3, _
        completed.Range(COLUMN_D_IN_COMPLETE & iTotRecsF), Val4)) > 0 Then

现在有效。 :)