繁体   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