我使用的是安装了64位Excel 2016的Windows 10 x64计算机。
我在日期方面遇到问题,因为它们工作不正常,我已正确设置了区域设置,但VBA似乎没有正确识别.
作为日期分隔符,它只使用-
。当我将其与安装了32位Excel 2010的Windows 7 x64计算机进行比较时,它的工作方式应该如此。
在下图中,您可以看到不正确的行为:
基本上,我在打电话:
? cdate("01.08.2016")
15. 06. 4862
? cdate("01-08-2016")
1. 08. 2016
? Application.International(xlDateSeparator)
.
? Application.International(xlTimeSeparator)
:
我不知道为什么这不能正常工作,因为Windows的区域设置设置正确..任何想法?
答案 0 :(得分:1)
我猜它被.
弄糊涂了,并尝试将其用作千位分隔符(通过删除它):
Debug.Print Format$(CDate(1082016), "dd.mm.yyyy") 'prints 15.06.4862
Excel和VBA在日期和本地化方面非常糟糕。我建议这样的解决方法:
Dim test As String
Dim parts() As String
test = "01.08.2016"
parts = Split(test, Application.International(xlDateSeparator))
Debug.Print DateSerial(CInt(parts(2)), CInt(parts(0)), CInt(parts(1)))
答案 1 :(得分:0)