vba 中的 sql select 语句不从 excel 关闭的工作簿和其他一些值中提取标题

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

我正在使用 Excel 工作簿来提取已关闭的工作簿“RawData.xlsm”工作表名称“all_register”的数据。以下是代码,但此 vba 代码无法提取所有标题(第一行/列名称)以及一些单元格值(值单元格格式为“常规”

Option Explicit

Sub GetDataFromClosedFile()

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    
    Set cn = New ADODB.Connection
    
    cn.ConnectionString = _
        "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & ThisWorkbook.Path & "/RawData.xlsm;" & _
        "Extended Properties='Excel 12.0 Macro;HDR=NO';"    

    cn.Open
    
    Set rs = New ADODB.Recordset
    
    rs.ActiveConnection = cn
    rs.Source = "SELECT * FROM [all_register$]"
    rs.Open
    
    Sheet1.Range("A1").CopyFromRecordset rs
    
    Sheet1.Range("A1").CurrentRegion.EntireColumn.AutoFit
    
    rs.Close
        
    cn.Close
    
End Sub

使用此代码,某些标题显示的某些标题不是由于列数据与标题不匹配而导致的(例如,标题标题是“日期”,下面的数据是日期,例如 23/7/2024。 需要专家的关注来纠正我的代码。 我不是 VBA 专家,请尝试您的专家建议中的简单方法

sql excel vba adodb
1个回答
0
投票

您的连接字符串指定不应接收标头,请将

HDR
更改为
YES

    cn.ConnectionString = _
        "Provider=Microsoft.ACE.OLEDB.12.0;" & _
        "Data Source=" & ThisWorkbook.Path & "/RawData.xlsm;" & _
        "Extended Properties='Excel 12.0 Macro;HDR=YES';" 
© www.soinside.com 2019 - 2024. All rights reserved.