2017-11-09 10 views
0

私はIfというID番号、開始日、終了日を確認する条件を持っています。これに条件を満たすために、2つの異なる列のTrueまたはFalseの値をチェックする文字列比較を追加します。私はもう一度application.worksheetfunction.countifを作ることができると思っていましたか?VBAのcount-Ifとの文字列比較を組み込む方法

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 

このコードは、単に値がまったく同じであっても実行されています。

編集 Val5は、私は疑問に思う文字列の比較ではうまく機能していないようworksheet1.Cells(行2、column4)

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

Val4はworksheet2.Cells(行2、column4)です*どうして?

+0

私は質問を理解するかどうかわかりません - "このコードは値がまったく同じであっても実行しています" ...もし私がちょうどライン(StrComp(Val4、 Val5)= 0)、2つの値を同じようにしたいと思うでしょうか?文字列の値が等しくない場合は0を返します。 – stobin

+0

はい、これは4つの異なる列(Int、日付x 2、文字列)を検査します。すべてのデータがまったく同じであれば、何も起こらないはずです。 – sharsart

+0

あなたは 'Val4'と' Val5'とは何かを正確に説明することができますか? –

答えて

0

複数のcountIfを使用する代わりに、1つの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 

これで動作します。 :)

関連する問題