VBA提取多个excel固定区域数据汇总到一个新excel的代码
时间: 2024-10-20 15:05:33 浏览: 26
提取word表格数据到Excel的vba程序代码
在VBA中,你可以使用`Range`, `Application.WorksheetFunction`以及循环结构(如For...Each)来从多个Excel工作表的特定区域提取数据并汇总到一个新的工作簿中。以下是一个基本的示例代码:
```vba
Sub ExtractAndSumData()
Dim ws As Worksheet
Dim sourceSheetRange As Range
Dim targetSheet As Worksheet
Dim data As Variant
Dim i As Long
Dim newWorkbook As Workbook
' 创建新的工作簿
Set newWorkbook = Workbooks.Add
' 遍历源工作簿中的每个工作表
For Each ws In ThisWorkbook.Worksheets
If ws.Name = "Sheet1" ' 假设你想提取的是名为"Sheet1"的工作表
' 设置源区域范围
Set sourceSheetRange = ws.Range("A1:B10") ' 假设你想提取A1到B10的单元格
' 提取数据
data = sourceSheetRange.Value
' 将数据复制到新工作簿的新工作表
Set targetSheet = newWorkbook.Sheets.Add(After:=newWorkbook.Sheets(newWorkbook.Sheets.Count))
targetSheet.Cells(1, 1).Resize(sourceSheetRange.Rows.Count, sourceSheetRange.Columns.Count) = data
End If
Next ws
' 对数据进行汇总操作(这里假设是对所有数据求和)
targetSheet.Range("C1").Value = Application.WorksheetFunction.Sum(targetSheet.UsedRange)
' 提交更改并关闭新工作簿
newWorkbook.SaveAs Filename:="NewData.xlsx" ' 替换为你想要保存的文件名
newWorkbook.Close SaveChanges:=True
End Sub
```
请注意,你需要根据实际情况调整`ws.Name`, `sourceSheetRange`, 和其他的列范围。这个例子假设你是在每张工作表的A1:B10区域进行数据提取,并将结果汇总到新工作表的C1单元格。
阅读全文