做个vba四条件分类汇总bcde四列为条件f列为数值列对相同的bcde进行f列数据汇总新建1个workbook把分类汇总结果放在新工作表sheet1中
以下是一个示例代码,用于实现您所描述的功能:
Sub SummarizeData() '定义变量 Dim LastRow As Long Dim CurrentRow As Long Dim CurrentBCDE As String Dim CurrentF As Double
'设置工作表
Dim SourceSheet As Worksheet
Set SourceSheet = ActiveSheet
'创建新工作簿
Dim NewBook As Workbook
Set NewBook = Workbooks.Add
'创建新工作表
Dim NewSheet As Worksheet
Set NewSheet = NewBook.Worksheets.Add
'命名新工作表
NewSheet.Name = "Sheet1"
'复制表头
SourceSheet.Range("A1:F1").Copy Destination:=NewSheet.Range("A1:F1")
'获取最后一行
LastRow = SourceSheet.Cells(Rows.Count, 1).End(xlUp).Row
'循环处理每一行
For CurrentRow = 2 To LastRow
'获取当前行的BCDE值和F值
CurrentBCDE = SourceSheet.Range("B" & CurrentRow).Value & SourceSheet.Range("C" & CurrentRow).Value & SourceSheet.Range("D" & CurrentRow).Value & SourceSheet.Range("E" & CurrentRow).Value
CurrentF = SourceSheet.Range("F" & CurrentRow).Value
'查找是否存在相同的BCDE值
Dim FoundRange As Range
Set FoundRange = NewSheet.Range("B2:B" & NewSheet.Cells(Rows.Count, 2).End(xlUp).Row).Find(CurrentBCDE, LookIn:=xlValues, LookAt:=xlWhole)
If FoundRange Is Nothing Then
'如果不存在,则在新工作表中添加新的汇总行
NewSheet.Range("A" & NewSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1).Value = SourceSheet.Range("A" & CurrentRow).Value
NewSheet.Range("B" & NewSheet.Cells(Rows.Count, 2).End(xlUp).Row).Value = SourceSheet.Range("B" & CurrentRow).Value
NewSheet.Range("C" & NewSheet.Cells(Rows.Count, 3).End(xlUp).Row).Value = SourceSheet.Range("C" & CurrentRow).Value
NewSheet.Range("D" & NewSheet.Cells(Rows.Count, 4).End(xlUp).Row).Value = SourceSheet.Range("D" & CurrentRow).Value
NewSheet.Range("E" & NewSheet.Cells(Rows.Count, 5).End(xlUp).Row).Value = SourceSheet.Range("E" & CurrentRow).Value
NewSheet.Range("F" & NewSheet.Cells(Rows.Count, 6).End(xlUp).Row).Value = CurrentF
Else
'如果存在,则在该行的F列上累加值
FoundRange.Offset(0, 4).Value = FoundRange.Offset(0, 4).Value + CurrentF
End If
Next CurrentRow
End Sub
该代码需要在VBA编辑器中执行。要打开VBA编辑器,请按下“Alt”和“F11”键。将代码复制并粘贴到编辑器中,然后按下“F5”键或单击工具栏上的“运行”按钮即可执行代码。执行后,将在新工作簿中创建一个名为“Sheet1”的工作表,并将分类汇总结果放在其中。注意,在执行代码之前,请确保原始数据位于活动工作表中。
原文地址: https://www.cveoy.top/t/topic/97k 著作权归作者所有。请勿转载和采集!