怎样使用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。
猜你喜欢