ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 500|回复: 7

[求助] excel vba

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-3-12 09:55 | 显示全部楼层 |阅读模式
每个业务员下都有自己的客户,先每个月汇总一下,再总的汇总一下。用VBA怎么做?谢谢

客户.zip

78.62 KB, 下载次数: 10

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-12 10:04 | 显示全部楼层
每个业务员的客户还会增加
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2019-3-12 10:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-12 11:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 yanghua118 于 2019-3-12 13:30 编辑
朱荣兴 发表于 2019-3-12 10:31
模拟效果连个列标题都没有,根本弄不明白你需要汇总那些数据

销售汇总工作薄里小明工作表第一列是月分1月、2月..........,汇总小明名下的客户每个月的销售金额,然后在汇总到各月销售汇总表里每个月所有客户的销售金额。这个表就是客户发生了业务就要记录在这个客户的工作表里,然后数据会自动的分配到销售汇总工作薄业务员的工作表中。再汇总到各月销售汇总表中。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-12 16:06 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-3-12 22:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
太复杂了
不同工作簿汇总,还要按月统计,数据源看着也不太整齐
你重新设计一下数据源格式  再汇总  再用透视表  估计能搞定

TA的精华主题

TA的得分主题

发表于 2019-3-13 13:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 autolzg 于 2019-3-13 13:53 编辑

复制代码
  1. Sub 一键汇总()
  2.    Call 按业务员汇总
  3.     Dim d As Object, sumx, i%, j%, k, rowx
  4.     Dim sht As Worksheet
  5.     Set d = CreateObject("Scripting.Dictionary")
  6.    
  7.     For Each sht In Worksheets
  8.         If sht.Name <> "各月销售汇总" Then
  9.             
  10.             k = Cells(1000, 1).End(3).Row + 1
  11.             
  12.             For i = 1 To 12
  13.                 sumx = 0
  14.                 For j = 1 To k
  15.                     sumx = sumx + sht.Cells(j + 1, i + 1)        'N列
  16.                 Next j
  17.                 d(i) = d(i) + sumx
  18.                
  19.             Next i
  20.             Debug.Print d.Count
  21.             
  22.             With ThisWorkbook.Worksheets("各月销售汇总")
  23.                 rowx = .Cells(19, 1).End(3).Row + 1
  24.                 .Cells(rowx, 1) = sht.Name
  25.                 For i = 1 To 12
  26.                     .Cells(rowx, i + 1) = d(i)
  27.                 Next i
  28.             End With
  29.             d.RemoveAll
  30.         End If
  31.     Next sht
  32. End Sub

  33. Sub 按业务员汇总()
  34.    
  35.     Dim d As Object, Mth, countx, RowY%
  36.     Dim i%, j%, lj$, FN$, nm$
  37.     Dim sh As Worksheet
  38.     Application.ScreenUpdating = False
  39.     Application.DisplayAlerts = False
  40.     Set d = CreateObject("Scripting.Dictionary")
  41.     lj = ActiveWorkbook.Path
  42.     nm = ActiveWorkbook.Name
  43.    
  44.     For Each sh In Worksheets
  45.         If sh.Name <> "各月销售汇总" Then
  46.             FN = Dir(lj & "\" & sh.Name & "\*.xls*")
  47.             
  48.             Do While FN <> ""
  49.                 Workbooks.Open filename:=lj & "\" & sh.Name & "\" & FN                   '打开要汇总的工作簿
  50.                
  51.                 With Workbooks(FN).Worksheets("sheet1")
  52.                     j = 3
  53.                     Do While Range("C" & j + 1).Value <> ""
  54.                         j = j + 1
  55.                     Loop
  56.                     For i = 4 To j
  57.                         Mth = Month(Cells(i, 3))
  58.                         countx = Cells(i, 14)                    'N列
  59.                         d(Mth) = d(Mth) + countx
  60.                     Next i
  61.                 End With
  62.                
  63.                 Workbooks(FN).Close True
  64.                
  65.                 With Workbooks(nm).Worksheets(sh.Name)
  66.                     RowY = .Cells(10000, 1).End(3).Row + 1
  67.                     .Cells(RowY, 1) = Left(FN, Len(FN) - 4)
  68.                     For i = 1 To 12
  69.                         .Cells(RowY, i + 1) = d(i)
  70.                     Next i
  71.                 End With
  72.                
  73.                 d.RemoveAll
  74.                
  75.                 FN = Dir
  76.             Loop
  77.             
  78.         End If
  79.     Next sh
  80.    
  81.     Application.ScreenUpdating = True
  82.     Application.DisplayAlerts = True
  83.    
  84. End Sub
复制代码


未经严格测试
客户0000.rar (101.64 KB, 下载次数: 3)

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-3-15 14:06 | 显示全部楼层
上边的没有表达清楚,再表达一下:
业务员有销售,就将销售填写在相应的业务员文件夹中客户工作薄中(新客户需添加,原有客户可接在客户薄中填写),填写完后:1、将业务员文件夹中相应客户工作薄中A1列(客户名称)放入‘’销售汇总工作薄‘’相应业务员A列。2、根据客户工作薄中C列2019年的月份汇总N列到“销售汇总工作薄”相应业务员相应客户相应的月份中。

客户.zip

78.71 KB, 下载次数: 2

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

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-26 17:37 , Processed in 0.036845 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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