VBA将多个Excel表合成一个工作簿的sheets
时间: 2024-10-16 11:07:15 浏览: 52
VBA(Visual Basic for Applications)是Microsoft Office套件中的宏语言,允许用户自动化Excel等应用程序的功能。如果你想通过VBA将多个Excel表格合并到一个工作簿中,你可以创建一个新的工作簿,然后逐个引用并复制这些单独的表格。以下是一个简单的步骤:
1. **打开新工作簿**:
使用`Workbooks.Add` 创建一个新的Excel工作簿。
```vba
Dim newWorkbook As Workbook
Set newWorkbook = Workbooks.Add
```
2. **引用其他工作簿中的表格**:
假设你有一个名为"Sheet1"、"Sheet2"的Excel文件("Book1.xlsx"),你可以使用`Application.GetOpenFilename` 函数让用户选择文件,然后读取每个工作表:
```vba
Dim sourceFile As String
sourceFile = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx")
If sourceFile <> "False" Then
Dim sourceSheet As Worksheet
Set sourceSheet = Workbooks.Open(sourceFile).Sheets('Sheet1') '假设第一个表单在Sheet1
'复制源工作表到新工作簿
newWorkbook.Sheets.Add(After:=newWorkbook.Sheets(newWorkbook.Sheets.Count)).Name = sourceSheet.Name
newWorkbook.Sheets(newWorkbook.Sheets.Count).Activate
sourceSheet.Copy Destination:=ActiveSheet
End If
```
3. **重复步骤**:
如果有多个工作表需要合并,可以循环这个过程,每次处理完一个工作表后再去选择下一个。
4. **保存新的工作簿**:
最后,别忘了保存包含所有表格的新工作簿。
```vba
newWorkbook.SaveAs "CombinedSheets.xlsx" '替换为你想要的文件名
newWorkbook.Close SaveChanges:=True
```
阅读全文