写一段宏的代码 合并文件下多个表格
时间: 2023-09-16 08:05:28 浏览: 115
### 回答1:
代码如下:
import pandas as pd data_frames = []list_of_files = [file1, file2, file3, file4]for filename in list_of_files:
data_frames.append(pd.read_excel(filename))combined_dataframe = pd.concat(data_frames, ignore_index=True)
### 回答2:
以下是一段宏的代码,用于合并指定文件夹下的多个表格:
```vba
Sub 合并表格()
Dim 文件夹路径 As String
Dim 文件名称 As String
Dim 目标工作簿 As Workbook
Dim 源工作簿 As Workbook
Dim 目标表格 As Worksheet
Dim 源表格 As Worksheet
' 指定文件夹路径
文件夹路径 = "C:\文件夹路径\"
' 新建目标工作簿
Set 目标工作簿 = Workbooks.Add
' 循环遍历文件夹下的所有文件
文件名称 = Dir(文件夹路径 & "*.xlsx")
Do While 文件名称 <> ""
' 打开源工作簿和表格
Set 源工作簿 = Workbooks.Open(文件夹路径 & 文件名称)
Set 源表格 = 源工作簿.Sheets(1)
' 将源表格复制到目标工作簿
Set 目标表格 = 目标工作簿.Sheets.Add(After:=目标工作簿.Sheets(目标工作簿.Sheets.Count))
源表格.UsedRange.Copy 目标表格.Range("A1")
' 关闭源工作簿
源工作簿.Close False
' 继续下一个文件
文件名称 = Dir
Loop
' 删除目标工作簿的第一个空表格
Application.DisplayAlerts = False
目标工作簿.Sheets(1).Delete
Application.DisplayAlerts = True
' 保存目标工作簿
目标工作簿.SaveAs 文件夹路径 & "合并表格.xlsx"
' 关闭目标工作簿
目标工作簿.Close False
' 提示合并完成
MsgBox "表格合并完成!"
End Sub
```
以上代码通过指定一个文件夹路径,循环遍历该文件夹下的所有Excel文件。首先新建一个目标工作簿,然后打开每个源工作簿和表格,将其复制到目标工作簿中的新表格中。最后,删除目标工作簿中的第一个空表格,然后保存合并后的表格为"合并表格.xlsx",关闭目标工作簿,并弹出一个提示框显示合并完成。
### 回答3:
以下是一个示例的宏代码,用于合并同一文件夹下的多个Excel表格:
```
Sub 合并表格()
Dim 文件路径 As String
Dim 目标工作簿 As Workbook
Dim 打开的工作簿 As Workbook
Dim 目标工作表 As Worksheet
Dim 数据区域 As Range
Dim 源行数 As Long
Dim 目标行数 As Long
' 设置目标工作表
Set 目标工作簿 = ThisWorkbook ' 或者使用 Set 目标工作簿 = Workbooks.Add
' 选择文件夹路径
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "选择文件夹"
.Show
文件路径 = .SelectedItems(1)
End With
' 循环遍历文件夹下的Excel文件
文件名 = Dir(文件路径 & "\*.xlsx*")
Do While 文件名 <> ""
' 打开文件
Set 打开的工作簿 = Workbooks.Open(文件路径 & "\" & 文件名)
' 指定源数据的范围
Set 数据区域 = 打开的工作簿.Worksheets(1).UsedRange
' 获取源数据的行数
源行数 = 数据区域.Rows.Count
' 获取目标工作表的下一个空行
If 目标工作簿.Worksheets.Count = 1 Then
Set 目标工作表 = 目标工作簿.Worksheets(1)
Else
Set 目标工作表 = 目标工作簿.Worksheets.Add(After:=目标工作簿.Worksheets(目标工作簿.Worksheets.Count))
End If
目标行数 = 目标工作表.Cells(Rows.Count, 1).End(xlUp).Row + 1
' 将源数据复制到目标工作表
数据区域.Copy 目标工作表.Cells(目标行数, 1)
' 关闭打开的工作簿
打开的工作簿.Close
' 继续下一个文件
文件名 = Dir
Loop
' 自动调整目标工作表的列宽
目标工作表.Columns.AutoFit
' 提示合并完成
MsgBox "表格已合并完成!", vbInformation
End Sub
```
以上代码可以通过执行宏来合并文件夹下的多个Excel表格。该宏会要求您选择一个文件夹作为合并的目标路径,并将目标工作簿设置为当前活动工作簿。然后,宏会遍历该文件夹下的所有Excel文件,并逐个打开,将每个表格的数据复制到目标工作簿的不同工作表中,并自动调整每列的宽度以适应数据。最后,宏会提示合并完成。注意,该代码仅支持合并同一文件夹下的多个xlsx文件,其他文件格式需要相应的修改。
阅读全文