ADODB查询将Excel单元格更新为转义文本

我正在尝试更新Excel 2003电子表格中的一个单元格,但是我遇到的问题是Excel向我的值的前面添加了一个单引号。 有没有办法input一个整数的值,而不是一个转义的string?

谢谢!!

Const filePath = "C:\1.xls" Dim ado: Set ado = CreateObject("ADODB.Connection") ado.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=""" _ & filePath & """;Extended Properties=""Excel 8.0;HDR=No"";" ado.CursorLocation = 3 ado.Open ado.Execute "UPDATE [Sheet1$A1:A1] SET F1 = 1;" ado.Close 

上面的代码将单元格A1更新为'1

我已经设法解决这个与Alex K的提示帮助和onedaywhen。

解决方法是在运行我的脚本之前,简单地格式化要更新的Excel单元格的正确types(数字,自定义等)。

奇怪的是,我确定我前几天试过这个,但是没有奏效……但是我猜这一定是晚了!

我猜测registry值和现有数据的组合导致列的数据types被视为文本。 请注意,在使用OLE DB提供程序进行ACE / Jet时,Excel只有一种数字types,即FLOAT (Double)。

要发现所考虑的数据types,请尝试运行以下命令:

 Const filePath = "C:\1.xls" Dim ado: Set ado = CreateObject("ADODB.Connection") ado.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=""" _ & filePath & """;Extended Properties=""Excel 8.0;HDR=No"";" ado.CursorLocation = 3 ado.Open Dim rs Set rs = ado.Execute("SELECT DISTINCT TYPENAME(F1) FROM [Sheet1$A1:A1];") MsgBox rs.GetString ado.Close