【问题标题】:Import CSV to Excel - automatically "Text to columns" and "insert table"将 CSV 导入 Excel - 自动“文本到列”和“插入表格”
【发布时间】:2012-01-02 12:49:35
【问题描述】:

我想在 Excel 2010 上打开我的 CSV(逗号分隔)文件并自动将文本转换为列,然后选择所有活动单元格并插入带有标题的表格。

是否可以在我的功能区中添加一个按钮来为我完成所有这些操作?

我经常使用不同大小的 CSV 文件,我发现每次手动执行此操作有点痛苦。

【问题讨论】:

  • 首先打开宏记录器,打开和存储您的文件,然后关闭宏记录器。研究保存的宏。对于您的工作宏,参数将是:文件名、目标工作表、位置等。您打算使用 InputBox 还是文件对话框?您的一些问题已经被询问和回答,因此请查看最近的问题。标签excel-vba 将是最相关的。在对任何剩余问题提出问题之前,尽可能多地自己发现。祝你好运。

标签: excel vba csv


【解决方案1】:

这有点晚了,但我刚刚遇到了这个问题......

这是用于从选择器中选择特定文件:

Sub OpenCSV()
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    fd.AllowMultiSelect = True
    fd.Show
    For Each fileItem In fd.SelectedItems
        Workbooks.OpenText Filename:= _
            fileItem _
            , Origin:=65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=False, Space:=False, Other:=False, TrailingMinusNumbers:=True
    Next
End Sub

这将打开所选文件夹中的所有 CSV 文件:

Sub OpenCSVFolder()
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    fd.AllowMultiSelect = True
    fd.Show
    For Each folderItem In fd.SelectedItems
        fileItem = Dir(folderItem & "\" & "*.csv")
        While fileItem <> ""
            Workbooks.OpenText Filename:= _
                folderItem & "\" & fileItem _
                , Origin:=65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
                xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
                Comma:=False, Space:=False, Other:=False, TrailingMinusNumbers:=True
            fileItem = Dir
        Wend
    Next
End Sub

请注意,这些文件设置为 Tab Delimited - 通过更新 Tab:=TrueComma:=False 参数来更改分隔符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-27
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    相关资源
    最近更新 更多