VBA 文件合并成多列
时间: 2023-08-30 11:07:22 浏览: 140
你可以使用VBA来合并多个文件的数据到一个工作表的多列中。下面是一个简单的示例代码:
```vba
Sub 合并多个文件到多列()
Dim FolderPath As String
Dim FileName As String
Dim ws As Worksheet
Dim LastRow As Long
Dim i As Integer
' 设置文件夹路径
FolderPath = "你的文件夹路径"
' 设置要合并的文件类型
FileName = Dir(FolderPath & "\*.xlsx")
' 设置要合并到的工作表
Set ws = ThisWorkbook.Sheets("合并后的数据")
' 清空合并后的数据
ws.Cells.Clear
' 设置初始行数
LastRow = 1
' 循环遍历文件夹中的文件
Do While FileName <> ""
' 打开文件
Workbooks.Open (FolderPath & "\" & FileName)
' 将文件中的数据复制到合并后的工作表中
With Workbooks(FileName).Sheets(1)
.UsedRange.Copy ws.Cells(LastRow, 1)
LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
End With
' 关闭文件
Workbooks(FileName).Close SaveChanges:=False
' 获取下一个文件名
FileName = Dir
Loop
' 调整列宽
ws.Columns.AutoFit
' 提示合并完成
MsgBox "文件合并完成!"
End Sub
```
在上面的代码中,你需要将`FolderPath`变量设置为包含要合并文件的文件夹的路径。然后,你需要将`ws`变量设置为要将数据合并到的工作表。代码将遍历文件夹中的所有Excel文件,将每个文件的数据复制到合并后的工作表的下一行。最后,它将自动调整列宽,并显示一个消息框提示合并完成。
请注意,这个示例假设要合并的所有文件都在同一个文件夹中,并且要合并的数据在每个文件的第一个工作表中。如果你的情况有所不同,可能需要对代码进行适当的修改。
阅读全文