我正在使用 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 专家,请尝试您的专家建议中的简单方法
您的连接字符串指定不应接收标头,请将
HDR
更改为 YES
cn.ConnectionString = _
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ThisWorkbook.Path & "/RawData.xlsm;" & _
"Extended Properties='Excel 12.0 Macro;HDR=YES';"