我有一些excel表格,他们的格式相同,放在一个文件夹下。我想把所有表格汇总起来,使得汇总表格的A1-C10是所有表格对应单元格的值相加。请用VBA代码实现这一功能。
时间: 2024-10-17 13:07:43 浏览: 35
你可以使用VBA(Visual Basic for Applications)在Excel中编写脚本来实现这个功能。以下是一个简单的示例,假设所有工作簿都位于同一个工作簿内,并且它们都有相同的结构:
```vba
Sub SumAllSheets()
Dim ws As Worksheet
Dim rng As Range
Dim sumSheet As Worksheet ' 创建一个新的总和工作表,如果还没有的话
Dim wb As Workbook
Set wb = ThisWorkbook ' 当前正在运行宏的工作簿
' 检查是否存在名为"SumSheet"的工作表
If Not wb.Worksheets.Exists("SumSheet") Then
Set sumSheet = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count)) ' 如果不存在,则创建新的工作表
sumSheet.Name = "SumSheet"
Else
Set sumSheet = wb.Worksheets("SumSheet")
End If
For Each ws In wb.Worksheets ' 遍历所有工作表
Set rng = ws.Range("A1:C10") ' 设置需要汇总的范围
' 对于每个工作表,将A1到C10的值加到sumSheet的相应位置
sumSheet.Cells(ws.Index + 1, 1).Resize(1, 3).Value = rng.Value
Next ws
MsgBox "汇总完成!", vbInformation, "汇总结果"
End Sub
```
这个VBA代码会遍历指定文件夹内的所有工作簿,然后对每个工作簿中A1到C10的数值求和,并将结果添加到名为"SumSheet"的新工作表或已存在的SumSheet的最后一行。
阅读全文