VBA FORMAT関数の問題を解決するにはどうすればよいですか?


0

FORMAT関数を使用しているのはExcel 2103 VBAですが、期待どおりの結果が得られません。

私のコードの行は次のとおりです。

strMonthNo = Format(Month(DateAdd("m", -1, Date)), "mm")

Date2016年11月29日はどこにあるのでしょうかstrMonthNo = 10、そうではありません。01です!

FORMATがなければ、値は正しいです。

どうすれば解決できますか?

回答:


2

の出力Monthは数値であり、日付ではありません。

Format(x,"mm")xが日付であると想定しているため、1900年1月10日に処理されるため、結果はになり1ます。

ただ使う
Format(Month(DateAdd("m", -1, Date)), "00")


1

同じことを2回行っています。

DateAdd仕事をしたい日付を与えています-今日1か月前の日付。このMonth関数は、その日付から月を抽出します-現在は10です。

FORMAT関数は、その後取ってその月の 10 - -と完全な日付として解釈、すなわち1月10日1900は、これはあなただけの月表示するように書式設定しているものです。

MONTHまたはを削除する必要がありますFORMAT。これらのいずれかが動作するはずです:

strMonthNo = Format(DateAdd("m", -1, Date))

strMonthNo = Month(DateAdd("m", -1, Date))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.