我有五十个相同表头的表格而且都在同一个目录下, 表格内有对应嵌入的照片。我现在需要把五十个表格合并到一个工作表里,合并的工作表只需要一个表头
时间: 2024-03-03 13:47:47 浏览: 16
可以通过使用VBA宏自动合并这些表格到一个工作表中,具体步骤如下:
1. 打开一个新的Excel工作簿,然后按下Alt + F11打开VBA编辑器。
2. 在左侧的“项目资源管理器”窗口中,右键单击VBA项目名称并选择“插入”>“模块”,创建一个新的模块。
3. 在新模块中编写VBA代码:
```VBA
Sub MergeTables()
Dim wb As Workbook
Dim ws As Worksheet
Dim sPath As String, sFile As String
Dim rRange As Range
Dim bFirst As Boolean
Set wb = ThisWorkbook
Set ws = wb.Sheets(1)
sPath = "C:\Tables\" '表格所在目录
sFile = Dir(sPath & "*.xlsx") '获取目录下所有xlsx文件
bFirst = True
Do While sFile <> ""
If sFile <> wb.Name Then
Workbooks.Open Filename:=sPath & sFile, ReadOnly:=True
Set rRange = ActiveSheet.UsedRange '获取表格数据范围
rRange.Copy
If bFirst Then '如果是第一个表格,则直接粘贴
ws.Range("A1").PasteSpecial xlPasteAll
bFirst = False
Else '否则,跳过表头,只粘贴数据
ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValues
End If
Workbooks(sFile).Close SaveChanges:=False '关闭表格
End If
sFile = Dir()
Loop
End Sub
```
4. 修改VBA代码中的“sPath”变量为你表格所在的目录,运行宏即可。
这个宏会自动读取指定目录下的所有Excel文件,跳过第一个表格的表头,只粘贴数据到新工作表中。如果你的表格中有嵌入的照片,可以在代码中使用“PasteSpecial”方法指定粘贴方式,以保留照片。