有10份excel文件,每份excel文件包含三列数据,现在需要将10份excel文件批量汇总在一起,但每一份第一列和第二列数据需汇总中sheet1中,每份文件第一列和第三列需汇总在sheet2中的VBA脚本代码
时间: 2024-03-12 10:45:09 浏览: 32
可以按照以下步骤编写 VBA 脚本代码:
1. 创建一个新的 Excel 文件,命名为“总表.xlsx”,并在其中创建两个工作表,分别命名为“Sheet1”和“Sheet2”。
2. 打开 Visual Basic 编辑器,在“总表.xlsx”文件中创建一个新的模块,在模块中编写 VBA 代码。
3. 在 VBA 代码中使用“Dir”函数遍历指定文件夹中的所有 Excel 文件,并使用“Workbooks.Open”方法打开每一个 Excel 文件。
4. 在每个 Excel 文件中,使用“Worksheets”对象获取第一个工作表和第二个工作表,并使用“Range”对象获取第一列和第二列(或第一列和第三列)的数据。
5. 将每份 Excel 文件中的数据,按照要求分别复制到“总表.xlsx”文件中的“Sheet1”和“Sheet2”工作表中。
6. 最后使用“Workbooks.Close”方法关闭所有打开的 Excel 文件。
以下是完整的 VBA 代码示例:
```
Sub MergeExcelFiles()
Dim folderPath As String
Dim fileName As String
Dim wbSource As Workbook
Dim wsSource1 As Worksheet
Dim wsSource2 As Worksheet
Dim wsTarget1 As Worksheet
Dim wsTarget2 As Worksheet
Dim lastRow As Long
'设置文件夹路径
folderPath = "C:\ExcelFiles\"
'打开总表.xlsx文件
Set wbTarget = Workbooks.Open("C:\ExcelFiles\总表.xlsx")
Set wsTarget1 = wbTarget.Sheets("Sheet1")
Set wsTarget2 = wbTarget.Sheets("Sheet2")
'遍历文件夹中的所有Excel文件
fileName = Dir(folderPath & "*.xlsx")
Do While fileName <> ""
'打开Excel文件
Set wbSource = Workbooks.Open(folderPath & fileName)
Set wsSource1 = wbSource.Sheets(1)
Set wsSource2 = wbSource.Sheets(1)
'复制第一列和第二列到Sheet1
lastRow = wsTarget1.Cells(Rows.Count, 1).End(xlUp).Row
wsSource1.Range("A2:B" & wsSource1.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
Destination:=wsTarget1.Range("A" & lastRow + 1)
'复制第一列和第三列到Sheet2
lastRow = wsTarget2.Cells(Rows.Count, 1).End(xlUp).Row
wsSource2.Range("A2:A" & wsSource2.Cells(Rows.Count, 1).End(xlUp).Row).Copy _
Destination:=wsTarget2.Range("A" & lastRow + 1)
wsSource2.Range("C2:C" & wsSource2.Cells(Rows.Count, 3).End(xlUp).Row).Copy _
Destination:=wsTarget2.Range("B" & lastRow + 1)
'关闭Excel文件
wbSource.Close SaveChanges:=False
'获取下一个Excel文件
fileName = Dir()
Loop
'关闭总表.xlsx文件
wbTarget.Close SaveChanges:=True
End Sub
```
在此示例中,假设要汇总的 Excel 文件都保存在“C:\ExcelFiles”文件夹中,并且每个 Excel 文件都包含一个名为“Sheet1”的工作表。代码中假设要汇总的第一列和第二列数据保存在第一个工作表中,要汇总的第一列和第三列数据保存在第二个工作表中。如果实际情况不同,需要根据实际情况修改代码。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)