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