Excel VBA类型转换错误

时间:2016-04-13 13:50:27

标签: sql excel vba

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

  

问题是:

以某种方式,Excel文件中的所有数字都以日期格式(ADO Fields(i).Type = 7)存储,并将它们转换回数字格式ex。 myVar = cDbl(recordset.Fields(8).Value)我收到的结果大于原点1。

此错误发生在小于60的数字(分别早于01.03.1900)。

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

1 个答案:

答案 0 :(得分:0)

对此问题感到好奇并发现了问题。 Lotus 1-2-3中有一个错误,因为它假设1900是闰年,Excel故意复制错误https://support.microsoft.com/en-us/kb/214326

在excel上,我将单元格格式更改为日期时间:

  • 59 1900年2月28日

  • 60年至1900年2月29日

然而,在ADO字段的值中,两者都显示为1900年2月28日,当转换为double时,两个值均为60.

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

编辑:测试数据 enter image description here