Excel VBAtypes转换错误

我正在使用SQL查询将Excel文件(数百或数千个文件)中的数据收集到一个生成的Excel表中。

问题是:

不知何故,Excel文件中的所有数字都以date格式(ADO Fields(i).Type = 7)存储,并在将它们转换回数字格式前。 myVar = cDbl(recordset.Fields(8).Value)我得到的结果比原点大1。

这个错误发生的数量小于60(早于01.03.1900分别)。

应该是常见的问题,但我找不到任何直接的想法如何解决它。

只是好奇这个问题,发现问题。 在莲花1-2-3中有一个错误,因为假设1900是一个闰年,Excel故意复制错误https://support.microsoft.com/en-us/kb/214326

在Excel中,我将单元格格式更改为date时间:

  • 59日为1900年2月28日

  • 60年1900年2月29日

但是,在ADO字段的值中,两者均显示为1900年2月28日,当转换为double时,两个值均为60。

我能想到解决这个问题的唯一方法是打开数据工作表,将单元格格式改为一般。

编辑:testing数据 在这里输入图像说明