我有以下内容的单元格:天和月被颠倒
2015年1月2日
小区被格式化日期
然后我复制的价值,并把它放在我的模块中类:
Set Line = New CTravelLine
Line.Date= Cells(1, 8).value
一切工作正常,直到我把另一个单元格该值的时刻:
值01/02/2015变为02/01/2015。 我使用这种格式(dd/mm/yyyy)。我的印象是,当日子数值低于一个月时,这两个值是相反的。该值是反转无论我试过的方法:
方法1:
Dim WrdArray() As String, datetest As String
WrdArray() = Split(travelLine.Date, "/")
datetest= WrdArray(0) & "/" & WrdArray(1) & "/" & WrdArray(2)
Cells(5, 5) = datetest
方法2:
Cells(5, 5) = travelLine.Date
我不明白我怎么能解决这个问题。在此先感谢您的帮助。
您的Windows区域设置设置为什么格式? – Ditto 2015-02-24 13:35:40
首先,您似乎有一个与美国不同的区域设置(VBA的默认设置)。 正如您所注意到的,如果您的日期天数小于月份,则您的格式设置会相应地将其翻转。但是,您需要知道,它只是格式化单元格中显示的文本,而不是单元格的实际值。 因此,您的问题是区域设置格式与实际单元格值格式之间的冲突。为了规避这种情况,最好的办法是将单元格格式设置为文本而不是日期。 – 2015-02-24 14:06:02
如果您的单元格包含真实日期值,并且travelLine类的Date属性是实际的日期类型,则不应该发生这种情况。如果上述任何一种都是文本,您将遇到此问题,并且在处理文本时应该使用CDate。 – Rory 2015-02-24 15:36:05