Excel通过VBA从提示位置导入CSV

时间:2015-03-19 15:57:32

标签: excel vba csv import

我尝试通过VBA导入csv文件。该文件始终称为data.csv,但它可以位于不同的文件夹中。因此,此代码首先提示路径,然后使文件文件位置,但没有导入任何内容。有什么问题?

JV

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

1 个答案:

答案 0 :(得分:0)

此代码存在一些问题。在我的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