我在尝试什么:
初始位置:
Sub GetDatafromCSV()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim FileName As String
Set cn = New ADODB.Connection
cn.ConnectionString = _
"Provider=Microsoft.ACE.OLEDB.16.0;" & _
"Data Source=" & GetLocalPath(ThisWorkbook.Path) & "\;" & _
"Extended Properties='text;HDR=YES;FMT=Delimited(';')'"
cn.Open
Set rs = New ADODB.Recordset
rs.ActiveConnection = cn
rs.Source = "SELECT * FROM [Test.csv]"
rs.Open
Tabelle2.Range("A21").CopyFromRecordset rs
rs.Close
cn.Close
End Sub
我已经用谷歌搜索了几个小时,但此时我一遍又一遍地得到相同的搜索结果。 我试过什么:
我的VBA知识很少,大家可以看看,我基本上就是把所有的代码都copy在一起
编辑:
感谢您的建议(带逗号或分号的 CSV?)但我的系统操作员已经是“;”可悲的是,它并没有改变任何事情。
导入后尝试使用 TextToColumns。这假设数据中没有分号。
Option Explicit
Sub GetDatafromCSV()
Dim cn As ADODB.Connection, r As Long
Set cn = New ADODB.Connection
With cn
.ConnectionString = _
"Provider=Microsoft.ACE.OLEDB.16.0;" & _
"Data Source=" & ThisWorkbook.Path & ";" & _
"Extended Properties='text;HDR=YES;FMT=Delimited'"
.Open
End With
Const SQL = "SELECT * FROM [Test.csv]"
With Sheet1
.Range("A21").CopyFromRecordset cn.Execute(SQL)
r = .Cells(.Rows.Count, "A").End(xlUp).Row
Application.DisplayAlerts = False
.Range("A21:A" & r).TextToColumns Destination:=.Range("A21"), _
DataType:=xlDelimited, Semicolon:=True
Application.DisplayAlerts = True
End With
cn.Close
End Sub