Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2361|回复: 2

[已解决]自动汇总数据-不显示运费为0的行,求解决

[复制链接]
发表于 2014-11-28 22:59 | 显示全部楼层 |阅读模式
VBA-自动汇总数据-不显示运费为0的行.zip (24.12 KB, 下载次数: 10)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-11-29 10:04 | 显示全部楼层    本楼为最佳答案   
Private Sub Worksheet_Change(ByVal Target As Range)   
If Target.Address(0, 0) = "B6" Then
        With Sheets("数据源")
            ROW1 = .Range("A" & .Rows.Count).End(xlUp).Row
            ARR1 = .Range("A2:R" & ROW1)
        End With
        If ROW1 > 1 Then
            ReDim ARR11(1 To UBound(ARR1), 1 To 8)
            For I = 1 To UBound(ARR1)
                If ARR1(I, 7) = Target.Value And ARR1(I, 13) <> 0 Then
                    N = N + 1
                    ARR11(N, 1) = N
                    ARR11(N, 2) = Year(Now()) & "-" & ARR1(I, 2)
                    ARR11(N, 3) = ARR1(I, 3)
                    ARR11(N, 4) = ARR1(I, 8)
                    ARR11(N, 5) = ARR1(I, 9)
                    ARR11(N, 6) = ARR1(I, 15)
                    ARR11(N, 7) = ARR1(I, 13)
                    ARR11(N, 8) = ARR1(I, 16)
                    QTFY = QTFY + ARR11(N, 6)
                    ZZL = ZZL + ARR11(N, 5)
                    YF = YF + ARR11(N, 7)
                    HJ = HJ + ARR11(N, 6) + ARR11(N, 7)
                End If
            Next I
            With Sheets("想要的示例A")
                If N > 0 Then
                    .Range("A8:H8").ClearContents
                    .Range("A9:H" & .Rows.Count).Clear
                    .Range("A8").Resize(N, 8) = ARR11
                    If N > 1 Then
                        .Range("A8:H8").Copy
                        .Range("A9:H" & 8 + N - 1).Select
                        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
                                               SkipBlanks:=False, Transpose:=False
                        Application.CutCopyMode = False
                    End If
                    .Range("B" & 8 + N) = "其它费用:"
                    .Range("D" & 8 + N) = "总重量:"
                    .Range("B" & 8 + N + 1) = "运费:"
                    .Range("B" & 8 + N + 2) = "TOTAL:"
                    .Range("C" & 8 + N) = QTFY
                    .Range("E" & 8 + N) = ZZL
                    .Range("C" & 8 + N + 1) = YF
                    .Range("C" & 8 + N + 2) = HJ
                    .Range("C" & 8 + N + 2).Select
                Else
                    .Range("A8:H8").ClearContents
                    .Range("A9:H" & .Rows.Count).Clear
                End If
            End With
        End If
    End If
End Sub
回复

使用道具 举报

 楼主| 发表于 2014-11-30 10:57 | 显示全部楼层
dsmch 发表于 2014-11-29 10:04
Private Sub Worksheet_Change(ByVal Target As Range)   
If Target.Address(0, 0) = "B6" Then
        ...

大侠,能改变“运费”,“其它运费”,“总重量”,“TOTAL”的字体,大小,或者加个下划线吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 08:00 , Processed in 0.324373 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表