excel - 将 CSV 导入 Excel - 自动 "Text to columns"和 "insert table"

标签 excel vba csv

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

是否可以在我的功能区中添加一个按钮来为我完成这一切?

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

最佳答案

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

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

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 参数来更改分隔符.

关于excel - 将 CSV 导入 Excel - 自动 "Text to columns"和 "insert table",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8701044/

相关文章:

excel - 带有可切换范围的索引和匹配

excel - 检测格式化为文本的重复项

excel - 如何在输入过程中覆盖文本框中的建议文本?

regex - VBA RegExp 在 vbscript.regexp 工作时导致编译错误

vba - 如何实现用户输入

excel - 在 Excel 中,需要计算从条件格式中着色的单元格,然后创建特定结果的报告

python - 如何动态更新 Django 中的模型?

java - 如何在java中给定单元格索引获取合并单元格的数据?

javascript - 如何导出带有文件名的csv文件

php - 将 '\t ' 等特殊字符转换为 "\t "(真正的制表符)