2016-07-15 8 views
1

Excel VBAでは、セルから日付を読み取ろうとしています。セルには、 "dd.mm.yyyy"という形式の日付が含まれています(私はドイツにいます)。私が特に必要とするのは月です。しかし、その月を読むと、Excelは毎回「12」を返します。 Day()とYear()を試してみると、セルが空白セルとして認識され、1899年12月30日の日付が返されることがわかりました。Excelの日付関数はVBAのみを返します。12/30/1899

だから、これは私が(できるだけ簡単にそれを置くために)動作しないやろうとしているものです:

ActiveSheet.Range( "K2")=月(B2)

そして、そこに行くと、私はK2で、日付が実際に02.02.2016であるときに "12"を取得します。

+0

あなたは実際に "セルの書式設定"を使ってセルを日付にフォーマットしましたか? – Magisch

答えて

0

Excelは日付を現在のロケールの日付のように表示される数値として格納することを理解する必要があります。 Excelが表示できる最も早い日付は1900年1月1日で、これは一般形式の1です。

2015年7月15日の日付は42566です。これは1900年1月1日以降の日数です。

セルに実際の日付が含まれているかどうかを確認するには、別の数値形式でフォーマットしてみてください。それが数字で、日付としてフォーマットすることができたら、次のトラブルシューティング手順に進むことができます。

セルB2を正しく参照していません。試してみてください

ActiveSheet.Range("K2") = Month(ActiveSheet.Range("B2")) 
+0

これを投稿した直後に、私はこれに気づいた。私は数字の形式などについて知っていましたが、これは決して私の心に来ていないほど馬鹿なものです。ありがとう、私には恥があります! – acrosstundras

+0

これで問題が解決した場合は、[ツアー] – teylyn

関連する問題