date分隔符在64位Excel VBA中无法正常工作
我在安装了64位Excel 2016的Windows 10 x64机器上。
我有date的麻烦,因为他们不正常工作,我有区域设置设置正确,但VBA似乎不正确认识.
作为date分隔符,它只使用-
。 当我将它与安装了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的区域设置正确设置..任何想法?
我猜它正在被这个混淆.
并试图使用它作为千位分隔符(通过删除它):
Debug.Print Format$(CDate(1082016), "dd.mm.yyyy") 'prints 15.06.4862
Excel和VBA在date和本地化方面确实很糟糕。 我会build议一个这样的解决方法:
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)))
find一个解决scheme..我不得不在地区设置更改短date:
d.MM.yyyy
之前的设置在短date掩码中有空格(如VincentG所述),如下所示:
d. MM. yyyy
这就是我现在的设置:
- VBA循环:如果单元格包含特定值,则删除包含该值的行以及下面的3行
- 在从vba创build的新工作簿中设置命名范围使其成为本地范围而不是全局范围
- 使用python(xlrd包)从Excel表中提取数据。 也得到一些垃圾数据
- 在列A中查找test1-test4之后如何求和列B中的值
- Excel开发 – OLEDBConnection.Refresh返回值
- 填充临时数组以避免在dynamicmultidimensional array上使用Preserve
- 在macros中查找特定工作表中列的行数
- COMException C#Microsoft.Office.Interop.Excel
- 5个表中的1个数据透视表关系