简体   繁体   English

如何在VBA中将字符串比较与count-If合并

[英]How incorporate string comparison with count-If in VBA

I have an If condition that checks id number, start date and end date. 我有一个If条件,用于检查ID号,开始日期和结束日期。 To this if condition I want to add a string comparison that checks True or False values in two different columns. 为此,如果要使用条件,我想添加一个字符串比较,以检查两个不同列中的True或False值。 I was wondering I could make another application.worksheetfunction.countif for this? 我想知道是否可以为此创建另一个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

This code is just running even if values are exactly the same. 即使值完全相同,此代码也仅在运行。

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

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

Doesn't seem to work well for string comparison, I wonder why? 对于字符串比较来说似乎不太有效,我想知道为什么吗?

Instead of using multiple countIf, a single countIf's does the job. 而不是使用多个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

It works now. 现在可以使用了。 :) :)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM