求助,导入csv数据

卧枝惠中天 2019-03-17 11:33:20
第一步是打开导入数据的对话框,选择我要导入的对象文件。第二步是读取并写入数据。感觉我选中的这个filepath写法有问题,每次获得的数据都是空,请大神指教!!感谢感谢!
...全文
102 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
milaoshu1020 2019-03-18
  • 打赏
  • 举报
回复
这样是可以导入的,只不过格式不对:
Sub test()
Dim filePath

With Application.FileDialog(msoFileDialogFilePicker)
If .Show <> -1 Then
Exit Sub
End If
filePath = .SelectedItems(1)
End With

Dim qt
Set qt = ActiveSheet.QueryTables.Add(Connection:="TEXT;" & filePath, Destination:=Range("$A$1"))
qt.Refresh
End Sub

这样导入对,格式也对:
Sub Macro1()
'
' Macro1 Macro
'

'
Dim filePath As String
With Application.FileDialog(msoFileDialogFilePicker)
If .Show <> -1 Then
Exit Sub
End If
filePath = .SelectedItems(1)
End With

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & filePath, Destination:=Range("$A$1"))
.Name = "test_import_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 936
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

示意图:

下载地址:
链接:https://pan.baidu.com/s/1BhUjGjrncRJJJzrDFDgZ7Q
提取码:4zoy
卧枝惠中天 2019-03-18
  • 打赏
  • 举报
回复
引用 2 楼 milaoshu1020 的回复:
"TEXT;filePath",
改成
"TEXT;" & filePath,
试试.
又把注释掉的refreshu那句加上就成功了,非常感谢
卧枝惠中天 2019-03-18
  • 打赏
  • 举报
回复
引用 2 楼 milaoshu1020 的回复:
"TEXT;filePath",
改成
"TEXT;" & filePath,
试试.
试了下,数据还是没有正常导入进去哦
卧枝惠中天 2019-03-18
  • 打赏
  • 举报
回复
引用 1 楼 VB业余爱好者 的回复:
试了一下,上面那段获取filePah的代码应该是没有问题的,可以正常取到所选文件名。楼主你说获得数据为空,是哪个数据为空?你可以加上断点,一步一步执行看看。
就是弹框出来,选择需要导入的文件后,excel里面没有数据,正常来说,导入的数据应该进入到excel了
milaoshu1020 2019-03-18
  • 打赏
  • 举报
回复
"TEXT;filePath",
改成
"TEXT;" & filePath,
试试.
VB业余爱好者 2019-03-18
  • 打赏
  • 举报
回复
试了一下,上面那段获取filePah的代码应该是没有问题的,可以正常取到所选文件名。楼主你说获得数据为空,是哪个数据为空?你可以加上断点,一步一步执行看看。

2,463

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧