怎样使用VBA符合三个条件则汇总数据?

 时间:2024-10-14 11:15:43

1、首先在开发工具中打开VBA编辑器

怎样使用VBA符合三个条件则汇总数据?

2、在单元格区域当中输入一些内容作为例子

怎样使用VBA符合三个条件则汇总数据?

3、在VBA编辑器中插入模块

怎样使用VBA符合三个条件则汇总数据?

4、在模块当中输入如下代码,然后运行Sub 汇总() Dim i&, tim&, j% tim=Hour(Now()) * 3600+Minute(Now()) * 60+Second(Now()) Application.ScreenUpdating=False '禁止刷新屏幕 Sheet2.Cells.Clear '清除原数据 Rows("1:3").Copy Sheet2.Range("a1") '复制标题 Sheet2.Columns("d:f").Delete Shift:=xlToLeft For i=4 To Range("A1048576").End(xlUp).Row '给变量i赋值,从4到A列最后一个非空行数 Cells(i, "j")=Cells(i, "b") & Cells(i, "c") & Cells(i, "d") '在j列产生一个辅助列 Next '重复下一个 With Sheet2 For i=4 To Range("A65536").End(xlUp).Row '给变量i赋值,从4到A列最后一个非空行数 If .Columns("I").Find(Cells(i, "j")) Is Nothing Then '如果汇总表I列不存在辅助列J列之数据 Range("b" & i & ":e" & i).Copy .Range("A1048576").End(xlUp). Offset(1, 0) '将A列除外的本行数据复制到汇总表 '对数量和金额进行条件汇总 .Range("A1048576").End(xlUp).Offset(0, 4)= Application.WorksheetFunction.SumIf(Range("j4:j1048576"), Cells(i, "j"),Range("H4:H1048576")) .Range("A1048576").End(xlUp).Offset(0, 5)= Application.WorksheetFunction.SumIf(Range("j4:j1048576"), Cells(i, "j"),Range("I4:I1048576")) .Range("A1048576").End(xlUp).Offset(0, 6)=Cells(i, "j") .Range("A1048576").End(xlUp).Offset(0, 3)=Cells(i, "g") End IfNext.Columns("g").Delete '删除辅助列End WithColumns("j").Delete '删除辅助列MsgBox "运行时间总共" & (Hour(Now()) * 3600+Minute(Now()) * 60+ Second(Now()))-tim & "秒!", vbOKOnly, "运行完毕"'报告运行时间Application.ScreenUpdating=True '禁止刷新屏幕Call边框End SubPrivate Sub边框()Sheet2.ActivateSheet2.Range("A3:f" & [f1048576].End(xlUp).Row).SelectWith Selection.Borders '边框.LineStyle=xlContinuous '线型.Weight=xlThin '粗细End WithEnd Sub

怎样使用VBA符合三个条件则汇总数据?

5、用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,程序执行后将弹出运行时间对话框

怎样使用VBA符合三个条件则汇总数据?
  • EXCEL VLOOKUP函数一次性返回多列结果
  • INDEX函数与MATCH函数逆向查询
  • Excel快速查找重复值的五个小技巧?
  • excel中如何把满足条件的区域粘贴到新工作表
  • excel中如何进行模糊求和
  • 热门搜索
    小学生手抄报图片大全 爱眼日手抄报 清明节手抄报 六一儿童节手抄报 植树节手抄报内容 廉洁手抄报 成长手抄报 教师节手抄报 预防溺水手抄报 民族团结手抄报内容