有没有办法将.csv中的数据导入活动的Excel工作表?

Mat*_*dge 13 excel vba excel-vba

我有一个总是命名相同的csv文件,名为SO2PO.csv.它将数据导入到名为"打开订单"的工作簿中的名为PO Data的excell工作表中.我需要找到一种方法将所有数据从SO2PO.csv导入Open Order.xlsm表PO数据.

我知道这是可能的,但是怎么样?有人能指出我正确的方向吗?

或者有没有办法让它可以导入任何放入特定文件夹的.csv文件?

The*_*man 23

添加此代码以在PO数据表中为您的数据源创建QueryTable

创建QueryTable后,您可以右键单击刷新数据(或打开时刷新)

Sub CSV_Import()
Dim ws As Worksheet, strFile As String

Set ws = ActiveWorkbook.Sheets("PO Data") 'set to current worksheet name

strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "Please select text file...")

With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
     .TextFileParseType = xlDelimited
     .TextFileCommaDelimiter = True
     .Refresh
End With
End Sub
Run Code Online (Sandbox Code Playgroud)


小智 5

如果您打算使用查询表,请确保在之后进行清理,剩余的查询表在下游过程中让我有些头疼。

' get the file to the data sheet
Set ws = ActiveWorkbook.Sheets("Data")
With ws.QueryTables.Add(Connection:="TEXT;" & "mydata.csv", Destination:=ws.Range("A1"))
    .TextFileParseType = xlDelimited
    .TextFileCommaDelimiter = True
    .Refresh
End With

' delete the querytable if there is one
On Error GoTo nothingtodelete
    Sheets("Data").QueryTables(1).SaveData = False
    Sheets("Data").QueryTables.Item(1).Delete 
nothingtodelete:
Run Code Online (Sandbox Code Playgroud)