コードで問題が発生しました。私は3つの変種の間に最大値(日付)を見つけようとしていますが、それはうまく機能しません。VBA変数の日付の比較
ここにコードがあります。
If CountValues(WA1, WA2, WA3) <> CountValues(WS_1, WS_2, WS3) Then
MAX_DATE = ""
Else
If WA1 = "" Then
WA1 = "01.01.1990"
End If
If WA2 = "" Then
WA2 = "01.01.1990"
End If
If WA3 = "" Then
WA3 = "01.01.1990"
End If
If WA1 >= WA2 And WA1 >= WA3 Then
MAX_DATE = WA1
Else
If WA2 >= WA3 And WA2 >= WA1 Then
MAX_DATE = WA2
Else
If WA3 >= WA2 And WA3 >= WA1 Then
MAX_DATE = WA3
End If
End If
End If
End If
現在、WA1は13.11.2017に等しく、WA2およびWA3は空です。 WS_1には値がありますが、WS_1には値がありません。したがって、最初のチェックが機能しています。 F8チェックでは「WA2 =」「」と表示されます。しかし、それでもMAX_DATEは2番目のIf関数が真であるので、何もないWA2に行きますが、WA1の値を返さなければなりません。
これを修正する方法はありますか?
あなたの情報をありがとう、と私はコードを少し変更しました。私は彼らに分を与えた。今度はマクロがWA3を選択しました。これは01.01.1990です。私は質問のコードを編集しました。 – Bildircin13
あなたはほとんどそれを正しく得ました。あなたは '日付'変数として 'WA1'などを宣言する必要があります:)それらをdelcaringした直後に、空のチェック(空の文字列は' Date'変数に代入することができません)またはこの空の文字列を割り当て、デフォルトの日付に変更します。 –
値が一致しない場合は、空の部分のチェックをスキップして(日付として宣言するために)、MAX_DATEの値を ""として宣言できますか? – Bildircin13