4
我想在Excel 2010上打开我的CSV(逗号分隔)文件并自动将文本转换为列,然后选择所有活动单元格并插入表头。导入CSV到Excel - 自动“文本到列”和“插入表”
是否可以添加一个按钮到我的功能区,这将为我做这一切?
我经常使用不同大小的CSV文件,我发现每次手动操作都有点痛苦。
我想在Excel 2010上打开我的CSV(逗号分隔)文件并自动将文本转换为列,然后选择所有活动单元格并插入表头。导入CSV到Excel - 自动“文本到列”和“插入表”
是否可以添加一个按钮到我的功能区,这将为我做这一切?
我经常使用不同大小的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:=True
或Comma:=False
参数变化的分隔符。
首先打开宏记录器,打开并存储文件并关闭宏记录器。研究保存的宏。对于您的工作宏,参数将是:文件名称,目标工作表,位置等。您打算使用InputBox还是文件对话框?你的问题位已经被问及回答,所以看看最近的问题。标记“excel-vba”将是最相关的。在回答关于任何剩余问题的问题之前尽可能地发现自己的想法。祝你好运。 – 2012-01-02 13:21:03