VBAで、C1セルの日付データがA1セルの日付以上でB1セルの日付以下(含まれるの意味)である場合含まれる、そうでない場合は含まれないと返す処理を書いていました。
ですが、何度書き直しても動作せず、ウォッチウィンドウで値と型を確認したところ、下記のようになっていました。
セル | 型 | 値 |
---|---|---|
C1セル(検索値) | double型 | シリアル6桁 |
A1セル(比較最小値) | variant/double型 | シリアル5桁 |
B1セル(比較最大値) | variant/double型 | シリアル5桁 |
シリアルで検索したいのですが、セルの表示はそのままにしておきたいです。
C1セルには{yyyy/m/d}形式で日付が入っています。
VBA
1Dim kensa As double 2kensa = Range(“C1”).value2 3 4If Range(“A1”).value2 <= kensa And kensa <= Range(“B1”).value2 then 5 MsgBox “含まれる” 6Else 7 MsgBox “含まれない” 8End If 9
シリアル値の桁を5か6に統一できると解決できますが、自身では知識不足で解決できませんでした。
ご教示いただけると幸いです。
よろしくお願いします。
「何度書き直しても動作せず」とは、メッセージボックスも表示されないのですか?
C1に日付をyyyy/m/dいれたらシリアルは5桁で比較もうまくいくのですが、
A1からC1までそれぞれどんな値を入れておられますか?
> シリアル6桁
とは何ですか?値が、100000以上1000000未満という意味ですか?
日付のシリアル値のことです。
A1 B1 C1 に入力されている値をコピーして質問に追記してください。
また、それぞれのセルの書式設定も追記してください。
回答するには、現象が再現できる情報を提示してもらう必要があります。
こちらで、新規ブックでA1 B1 C1 各セルに下記の日付を入力して、問題なく動作しました。
2021/1/1
2021/3/1
2021/2/3
シリアル値は、すべて5桁でした。
44197
44256
44230
>日付のシリアル値のことです。
それは最初からわかっています。
> シリアル6桁
とは何ですか?値が、100000以上1000000未満という意味ですか?
2173/10/14以降ならシリアルは6桁になりますが、それなら入力ミスが疑われます。
※A1,B1のシリアルが5桁のため比較対象にはおかしい
やはり5桁の間違いか。
回答1件
あなたの回答
tips
プレビュー