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

2025-10-07 11:15:32

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 If
Next
.Columns("g").Delete                  '删除辅助列
End With
Columns("j").Delete                   '删除辅助列
MsgBox "运行时间总共" & (Hour(Now()) * 3600+Minute(Now()) * 60+
    Second(Now()))-tim & "秒!", vbOKOnly, "运行完毕"'报告运行时间
Application.ScreenUpdating=True        '禁止刷新屏幕
Call边框
End Sub
Private Sub边框()
Sheet2.Activate
Sheet2.Range("A3:f" & [f1048576].End(xlUp).Row).Select
With Selection.Borders      '边框
.LineStyle=xlContinuous    '线型
.Weight=xlThin           '粗细
End With
End Sub

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

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

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢