2017-08-14 26 views
0

私は不可能なことをしようとしていると思います。私は範囲A1:A5にいくつかの日付があります。これらのセルは日付形式を持つ必要があります。なぜなら、特定の日付よりも大きいか小さいかをチェックしたいからです。さらに、これらの日付をA1:A5の範囲でyyyy.mmという形式で表示したいとします。私は1つの石で2匹の鳥を殺す方法がないと思う。日付表示と日付表示VBA

Public Sub test() 

Range("A1:A5").NumberFormat = "yyyy.mm" 
Range("A1:A5") = Format(Date, "yyyy.mm") 

If IsDate("A2") Then 
    Range("B2") = "OK" 
End If 

End Sub 

Range("B1:B5").NumberFormat = "yyyy.mm"変更カスタム(yyyy.mm)上のセルの書式が、日付はまだ変わらないフォームの日付はyyyy.mm(YYYY.MM.DD)

Range (“A1:A5”) = Format(Date, “yyyy.dd”)ディスプレイに表示されますが、年月が1905.07に変更されました。さらに、日付は日付形式ではなくカスタムです。

実際にyyyy.mmのような日付を表示することはできませんが、日付形式で表示することはできません(形式バーでは日付がdd.mm.yyyyまたは別の方法で表示されるため)日付?

敬具、 Neke

答えて

0

まず第一に、「2017.05」が数としてExcelで解釈されるため、日付の範囲内のポイントを使用すると、問題になる可能性があります。

あなたはこのようなものを使用することにより、 "YYYY/MM" に日付を再フォーマットすることができます

For Each r In Range("A1:A5") 
    r.Value = VBA.Format(r, "yyyy/mm") 
Next r 
+0

ハズレを。それは動作しません... 'Public Sub test() Dim r As Range ' Range( "A1:A5")NumberFormat = "yyyy.mm" 'Range( "A1:A5")=形式(日付 "YYYY/MM")範囲の各R( "A1:A5")について r.Value = VBA.Format(R、 "YYYY/MM") 次のR IsDate関数IF( "A2 ")Then 範囲(" C2 ")="テスト " End Sub ' – neke

+0

@Neke変換する日付の形式は何ですか? – Slaqr

+0

@ Slaqr形式はカスタムyyyy.mmです。セルには、例えば2017.07が書かれていますが、フォーミュラバーには01.07.2017が表示されます。しかし、セルの値は日付として認識されません。だから私は今日のようないくつかのステートメントをA1 <現時点で使うことはできません。 – neke

関連する問題