簡體   English   中英

Excel通過VBA從提示位置從CSV導入

[英]Excel import from CSV by VBA from prompted location

我嘗試通過VBA導入csv文件。 該文件始終稱為data.csv,但可以位於不同的文件夾中。 因此,此代碼首先提示路徑,然后使文件成為文件位置,但沒有導入任何內容。 怎么了?

合資公司

Sub View()

'Prompts Path
Application.FileDialog(msoFileDialogFolderPicker).Show
Path = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)

'Defining file
File = Path & "\data.csv"

Workbooks.Add

With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & File, _
    Destination:=Range("A1"))
    .TextFileTabDelimiter = True
    .TextFileDecimalSeparator = "."
End With

End Sub

此代碼有兩個問題。 在我的excel版本中,它不喜歡使用名稱“ Path”作為變量,因此我可能會對其進行更新。 但是,這似乎對您來說不是問題,但是第二個問題是您使用的“范圍”定義不正確。 我猜它正在嘗試在當前工作簿中使用范圍。 看起來,即使添加新工作表,活動表仍與原始工作簿保持一致。 此外,您需要刷新查詢表。 嘗試這個:

Sub View()
Dim mypath As String 
Dim myfile As String
Dim wb As Workbook
Dim ws As Worksheet

'Prompts Path
Application.FileDialog(msoFileDialogFolderPicker).Show
mypath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1)

'Defining file
myfile = mypath & "\data.csv"

Set wb = Workbooks.Add
Set ws = wb.Sheets("Sheet1")

With ws.QueryTables.Add(Connection:= _
"TEXT;" & myfile, _
    Destination:=ws.Range("A1"))
    .TextFileTabDelimiter = True
    .TextFileDecimalSeparator = "."
    .Refresh
End With

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM