Excel - 如何以表格形式打开多个CSV文件

时间:2017-05-11 02:43:01

标签: excel automation excel-2016

有没有办法打开多个CSV文件(来自同一文件夹)并将它们作为单个工作表放在同一工作簿中?目前,如果我打开多个CSV(按下 CTRL 键进行多次选择),每个CSV都会作为单独的工作簿打开 - 而我需要的是一个工作簿,其中每个CSV都作为工作表。

更新: - 显然,这可以通过将每个CSV作为工作表添加到工作簿来手动完成 - 寻找更好的自动方法,因为这是我需要的任务在许多CSV上反复重复。例如 - 我有一个文件夹csvs包含文件csv1.csvcsv2.csvcsv3.csv等。需要一个工作簿Book1,每个CSV作为工作表。

2 个答案:

答案 0 :(得分:0)

您可以import CSV并将数据添加到每个文件的新工作表中。

答案 1 :(得分:0)

这是一个将一个或多个CSV文件加载到已打开的工作簿中的宏(感谢"记录宏"选项和一点逆向工程)。

Sub LoadWorksheet()
'
' LoadWorksheet Macro
'

'
    Workbooks.Open Filename:="path-to-file-you-want-to-load"
    Application.WindowState = xlNormal
    Sheets("Sheet1").Select
    Sheets("Sheet1").Move After:=Workbooks("currently-open-file").Sheets(1)
End Sub

要替换path-to-file-you-want-to-load的文件名是您要作为工作表打开的第一个文件。 currently-open-file是要将其他文件加载到的空白Excel文件。将Sheet1替换为将要移动的文件中的工作表名称。

如果您要移动的同一文件中有多个工作表,请重复.Select.Move行,并在每一对前面加上此行:

Windows("file-you-want-to-load").Activate

要打开并复制多个文件,只需重复宏的开头部分并使用其他文件名填充它。

需要注意的一件事:此宏将工作表从一个文件移动到另一个文件,而不是复制它们。因此,如果文件中有多个工作表而您只移动其中一些工作表,则该工作簿将保持打开状态,当您关闭它时,Excel将提示您保存它并删除已移动的工作表。但是,如果从该工作簿移动所有工作表,Excel将关闭该工作簿而不保存更改或提示您保存更改。

相关问题