使用Excel 2003 VBA代码,我将表单中的日期复制到单元格中,然后将其格式化为vbLongDate。这样的日期就像“2014年8月13日星期三”。不过,我正在努力让日期组件退出。我正在尝试这个
Dim myDate As Date
myDate = Date(Range("A1").Value)
从那里开始,我想从myDate中提取年,月,日值,但这不起作用。我尝试了一些变化,但它们都是轰炸。
谢谢!
答案 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;@"
您可以根据是否需要调整,为不同的单元格设置不同的格式。