Excel精英培训网

 找回密码
 注册

QQ登录

只需一步,快速开始

工作中常用的Excel函数公式,全印在一张超大鼠标垫上
查看: 383|回复: 4

[已解决] VBA提取不重复客户名合计对应三列数据代码

[复制链接]
发表于 2019-12-1 13:56 | 显示全部楼层 |阅读模式
本帖最后由 ruhong18 于 2019-12-3 17:47 编辑

求助提取不重复客户名合计对应三列数据VBA按钮代码

提取不重复客户名合计对应三列数据.zip

7.35 KB, 下载次数: 10

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2019-12-2 08:44 来自手机 | 显示全部楼层
这个诉求没什么特殊操作,最佳方案是用数据透视表,源表用名称定义可实现自动扩充。程序需要精确定位各行与各列,一旦你改变了行列位置,程序就得改,不灵活。
回复

使用道具 举报

 楼主| 发表于 2019-12-2 09:31 | 显示全部楼层
rardge2015 发表于 2019-12-2 08:44
这个诉求没什么特殊操作,最佳方案是用数据透视表,源表用名称定义可实现自动扩充。程序需要精确定位各行与 ...

也可以是sheet1是汇总的,sheet2是提取不重复客户名合计对应三列数据的结果(分成2个工作表)
回复

使用道具 举报

发表于 2019-12-3 16:41 | 显示全部楼层
Sub Click()
    Dim i
    Application.ScreenUpdating = False


    '1)地址
    Sheets(1).Select
    i = Range("c65536").End(xlUp).Row
    If i < 5 Then End
    i = ActiveSheet.Name & "!" & Range("c4:i" & i).Address(, , xlR1C1)


    '2)合并计算
    Sheets(2).Select
    Cells = ""
    [b1] = "客户"
    [b1].Consolidate Sources:=i, Function:=xlSum, TopRow:=True, LeftColumn:=True
    Range("c:d,g:g").Delete


    '3)序号
    [a1] = "序号"
    For i = 2 To Range("b65536").End(xlUp).Row
        Cells(i, 1) = i - 1
    Next


    '4)合计
    Cells(i, 1) = "合计"
    Cells(i, 3) = "=sum(c2:c" & i - 1 & ")"
    Cells(i, 3).AutoFill Destination:=Range("c" & i & ":e" & i), Type:=xlFillValues


    Range("a1").CurrentRegion.ColumnWidth = 15
End Sub


提取不重复客户名合计对应三列数据2.rar (17.48 KB, 下载次数: 14)

评分

参与人数 1学分 +2 收起 理由
ruhong18 + 2 学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2019-12-3 17:29 | 显示全部楼层
本帖最后由 ruhong18 于 2019-12-4 15:14 编辑
爱疯 发表于 2019-12-3 16:41
Sub Click()
    Dim i
    Application.ScreenUpdating = False

代码正确,感谢版主再次帮忙~    如何执行汇总 跳过“分类”的工作表,不对它进行汇总?

不对指定的分类那个工作表汇总,其他工作表汇总.zip

26.51 KB, 下载次数: 3

回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2020-8-4 19:35 , Processed in 0.062400 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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