用vba编写宏统计多个sheet中每种材料的总使用量
以下是一个用VBA编写的宏,用于统计多个工作表中每种材料的总使用量。
Sub 统计材料使用量()
Dim ws As Worksheet
Dim lastRow As Long, i As Long
Dim material As String
Dim totalUsage As Double
' 在第一个工作表中创建一个新的汇总表
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "汇总表"
Sheets("汇总表").Cells(1, 1).Value = "材料"
Sheets("汇总表").Cells(1, 2).Value = "总使用量"
' 遍历每个工作表
For Each ws In ThisWorkbook.Worksheets
' 跳过汇总表
If ws.Name <> "汇总表" Then
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' 遍历每一行
For i = 2 To lastRow
material = ws.Cells(i, 1).Value ' 假设材料名称在第一列
totalUsage = totalUsage + ws.Cells(i, 2).Value ' 假设使用量在第二列
' 在汇总表中查找材料
Dim found As Range
Set found = Sheets("汇总表").Columns(1).Find(material, LookIn:=xlValues, LookAt:=xlWhole)
' 如果材料已经存在于汇总表中,则更新对应的使用量
If Not found Is Nothing Then
Sheets("汇总表").Cells(found.Row, 2).Value = Sheets("汇总表").Cells(found.Row, 2).Value + ws.Cells(i, 2).Value
Else
' 否则,在汇总表的下一行添加新的材料和使用量
Sheets("汇总表").Cells(Sheets("汇总表").Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = material
Sheets("汇总表").Cells(Sheets("汇总表").Cells(Rows.Count, 1).End(xlUp).Row, 2).Value = ws.Cells(i, 2).Value
End If
Next i
End If
Next ws
End Sub
请将此代码复制粘贴到VBA编辑器中(按下Alt + F11打开VBA编辑器),然后运行宏。它将在您的工作簿中创建一个新的工作表“汇总表”,并将每种材料的总使用量列出。
请注意,此代码假设材料名称在每个工作表的第一列,使用量在第二列。如果您的数据结构不同,请根据实际情况进行修改
原文地址: http://www.cveoy.top/t/topic/h6D4 著作权归作者所有。请勿转载和采集!