Excel日期问题

时间:2014-08-13 21:21:01

标签: excel vba

使用Excel 2003 VBA代码,我将表单中的日期复制到单元格中,然后将其格式化为vbLongDate。这样的日期就像“2014年8月13日星期三”。不过,我正在努力让日期组件退出。我正在尝试这个

Dim myDate As Date
myDate = Date(Range("A1").Value)

从那里开始,我想从myDate中提取年,月,日值,但这不起作用。我尝试了一些变化,但它们都是轰炸。

谢谢!

1 个答案:

答案 0 :(得分:1)

我假设你将formatDateTime()函数与vbLongDate一起使用。这会返回文字。考虑使用日期格式格式化单元格并保留其日期属性。

Sub test()
Dim myDate As Date
' this will return text
Range("A1") = FormatDateTime(Now, vbLongDate)
' A2 will remain a date
Range("A2") = Date
Range("A2").NumberFormat = "[$-F800]dddd, mmmm dd, yyyy"

myDate = Range("A2").Value
Debug.Print Month(myDate) ' no error
End Sub

修改:根据所使用的日期格式,日期的外观将根据区域设置进行调整。

' this date format will adjust to the regional settings
' my regional settings are DMY and I see "Thursday, 14 August 2014"
' even though the format shows the mmmm before the dd
    myRange1.NumberFormat = "[$-F800]dddd, mmmm dd, yyyy"

' this date format will always be like displayed below
    myRange2.NumberFormat = "dddd, d mmmm yyyy;@"

您可以根据是否需要调整,为不同的单元格设置不同的格式。