Excel VBA:IMEX=1 无法按预期将所有记录视为文本

问题描述 投票:0回答:1

我有一个相当大的源 Excel 文件,其中第一列

Code
有大量数字数据,其中少数单元格带有文本。

我的问题是连接中的

IMEX=1
设置无法按预期工作,而且我仍然发现存储在
rst
中时所有少数文本单元格都无效,因为主要数据类型是数字。

那么,无论主导数字数据类型如何,我在这里缺少什么才能使

Code
列中的所有记录在存储在
rst
中时被视为文本?

附注前 13 条记录包含纯数字数据,因此这可能是 @Rory 指出的问题。

Sub RetrieveDataUsingADO()
    Dim strFile As String
    Dim strConnect As String
    Dim strSQL As String
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset

    strFile = ThisWorkbook.Path & "/Data.xlsx"

    strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""" & strFile & _
                """;Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"";"
    
    cnn.Open ConnectionString:=strConnect
    
    strSQL = "SELECT [Code] FROM [Payments$]"

    rst.Open strSQL, cnn, adOpenKeyset, adLockReadOnly

    Do Until rst.EOF
        Debug.Print CStr(rst.Fields("Code").Value)
        rst.MoveNext
    Loop

    rst.Close
    cnn.Close
End Sub
excel vba
1个回答
0
投票

按照此处的说明操作使用 Excel 驱动程序的 TypeGuessRows 设置,并将

TypeGuessRows
的值编辑为某个大数字解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.