ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 敬请朱荣兴老师帮忙写一个多表求和的代码

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-4-13 16:28 | 显示全部楼层
本帖最后由 laoshenji 于 2016-4-13 16:39 编辑
朱荣兴 发表于 2016-4-12 15:10
感谢你的太爱,惶恐之至,
1,请提供vba工程保护密码,
2、请提供工作表保护密码

尊敬的朱老师:您好!我将求助附件的新的设计要求重新整理了一下。说了那么多,不知说清楚没有。这个模板工作量较大,我也不急于使用,老师有时间慢慢辛劳。学生再次拜谢了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-4-13 16:29 | 显示全部楼层
本帖最后由 laoshenji 于 2016-4-13 16:52 编辑
朱荣兴 发表于 2016-4-12 15:10
感谢你的太爱,惶恐之至,
1,请提供vba工程保护密码,
2、请提供工作表保护密码

重新整理的设计要求:
本求助附件实际上是一个“商品明细账+汇总表”的模板(仅供一个年度使用)。
一、关于明细账
1、本模板所有明细账(不含《辅助表》,下同)的结构是相同的。每当发生收发业务,可在《汇总表》B列分别点击目标“材料名称及规格”的超链接进行登记明细账。所有明细账标签可以更改名称,明细账的数量也可以增减。明细账的标签名更改后,所对应的各明细账C3单元格的“名称”和《汇总表》中的“材料名称及规格”随之改变。各明细账的行高和列宽可以在今后进行调整。
2、各明细账的L6、M6、N6单元格分别引用《辅助表》中的M6、N6、O6单元格的数据。需要说明的是,《辅助表》B列与《汇总表》B列的“材料名称及规格”的排列顺序是不一致的,因为它们分别来自两个不同的年度。
3、各明细账“收入”栏的“数量”、“单价”、“金额”用手工输入;“发出”栏的“数量”“单价”、“金额”亦用手工输入(求助附件用“移动加权平均法”自动生成其“单价”和“金额”的做法,因很复杂予以放弃)。
“结存”栏的“数量”、“单价”、“金额”由公式自动生存,以各明细账第7行为例,其公式为:
L7=IF(AND(F7=0,I7=0),0,L6+F7-I7)
M7=IF(L7=0,0,N7/L7)
N7=IF(AND(H7=0,K7=0),0,N6+H7-K7)
注:《汇总表》和各明细账的数据均保留2位小数。
4、所有明细账凡是设置了公式的列(例如,各明细账的L、M、N列)和其他含有公式的单元格,均批量设置公式保护。
5、所有明细账均批量设置返回《汇总表》同名“材料名称及规格”的超链接,这样设计将有利于按明细账的先后顺序快速记账注:在求助附件中,只要单击L、M、N列的有数据单元格就可跳转至《汇总表》,只要双击L、M、N列的有数据单元格就提示“是否删除该行”的做法也值得肯定)
6、所有明细账凡是已经输入有效内容的行均为实线表格,已经输入有效内容的以下空白区域均为虚线表格。
7、在明细账输入的数据有负的数量和负的金额。如果负数的金额除以负数的数量或者其中一方为负数的,其单价不能为负数(应为正数,即绝对值)。
二、关于《汇总表》
1、《汇总表》D2单元格(自定义格式)为1月至12月的数据有效性。《汇总表》大标题的月份随着D2单元格的变化而变化。
2、《汇总表》B5及其以下的“材料名称及规格”,按先后顺序分别引用于各分表标签名。明细账的标签名更改后,《汇总表》(含各明细账C3单元格)的“材料名称及规格”随之改变。
3、《汇总表》C5及其以下单元格的计量单位应直接引用各明细账I3单元格的相应“计量单位”。(注:求助附件中各明细账I3格式忘记整理,应该将计量单位的名称单独放置在一个单元格里以便引用。这个疏漏请老师原谅。
4、《汇总表》“期初结存”栏的“数量”、“单价”、“金额”,分别来自与B列同名称的明细账。1月份的期初结存数量、单价、金额,固定引用于各明细账的L6、M6、N6;2月份的期初结存数量、单价、金额,就是1月份“期末结存”栏的数量、单价、金额(指各明细账A列最后一个月份为1的数据。在此需要提醒的是,各明细账的月份有可能不是升序输入,比如说,在2月的业务之后又补记了几笔1月的业务。其他月份也有类似情况。);3月的期初结存数量、单价、金额,就是2月“期末结存”栏的数量、单价、金额......其他月份,以此类推。
5、《汇总表》“本月收入”栏的“数量”、“单价”、“金额”,分别来自与B列同名称的明细账。其中“数量”和“金额”,是分别对各明细账F7、G7、H7及其以下单元格的数据按月(以A列月份为准)汇总求和。单价=金额/数量。
6、《汇总表》“本月发出”栏的“数量”、“单价”、“金额”,分别来自与B列同名称的明细账。其中“数量”和“金额”,是分别对各明细账I7、J7、K7及其以下单元格的数据按月(以A列月份为准)汇总求和。单价=金额/数量。
7、《汇总表》“期末结存”栏的“数量”、“单价”、“金额”,分别来自与B列同名称的明细账。1月的期末结存数量、单价、金额,就是各明细账1月“结存”栏的数量、单价、金额(指各明细账A列最后一个月份为1的数据。在此需要提醒的是,各明细账的月份有可能不是升序输入,比如说,在2月的业务之后又补记了几笔1月的业务。其他月份也有类似情况。);2月的期末结存数量、单价、金额,就是各明细账2月“结存”栏的数量、单价、金额;3月的期末结存数量、单价、金额,就是各明细账3月“结存”栏的数量、单价、金额......其他月份,以此类推。
8、在《汇总表》,所有的单价不能为负数(应为正数,即绝对值)。
9、《汇总表》设置超链接,在B列单击某一材料名称,就可跳转到同名称明细账的第一个非空单元格。这样设计,将有利于直接到达明细账的非空行快速记账
10、B列的“材料名称及规格”不应显示《辅助表》。
11、《汇总表》B列“材料名称与规格”的个数无论增加与减少,其“合计”始终显示在该表的最末行
三、关于《辅助表》
《辅助表》实际上就是本年初(或上年末)的数据,它复制于上年12月份的《汇总表》。该表的作用见 “一、关于明细账”第“2”条的内容。请不要将该表纳入批量保护,因为每年初该表的数据必须更换一次。即使需要保护,只需人工操作即可。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-4-30 13:37 | 显示全部楼层
本帖最后由 laoshenji 于 2016-5-5 14:15 编辑
朱荣兴 发表于 2016-4-12 15:10
感谢你的太爱,惶恐之至,
1,请提供vba工程保护密码,
2、请提供工作表保护密码

尊敬的朱老师,向您求助的这个模板预计6月1日投入实际运用,恳求您在此之前帮忙写个代码。学生拜托了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-31 15:43 | 显示全部楼层
本帖最后由 laoshenji 于 2016-6-1 10:29 编辑

尊敬的朱荣兴老师:您辛苦了。本人向您求助的多表动态求和的代码有答案了吗?都求助一个多月了。能否给出答案请给句话,免得我天天盼、日日等。盼复!

TA的精华主题

TA的得分主题

发表于 2016-6-1 13:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不伤筋动骨的办法:自定义重新计算的方式,加入以下代码:


  1. Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  2.     If Sh.Name = "汇总表" Then
  3.         With Application
  4.             .Calculation = xlManual '启用手动重算
  5.             .MaxChange = 0.001
  6.         End With
  7.         Sh.Range("A1:O1000").Calculate '对指定区域计算
  8.     Else
  9.         With Application
  10.             .Calculation = xlAutomatic '启用自动重算
  11.             .MaxChange = 0.001
  12.         End With
  13.     End If
  14. End Sub
复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-6-1 13:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如果楼主要保留那些花哨的东东,每一次数据变化都必然触发一次  Sheet_Change  事件。

楼主若解放一下思想也许会得到意外收获!

管窥之见,供参考。


TA的精华主题

TA的得分主题

 楼主| 发表于 2016-6-1 15:35 | 显示全部楼层
一指禅62 发表于 2016-6-1 13:35
如果楼主要保留那些花哨的东东,每一次数据变化都必然触发一次  Sheet_Change  事件。

楼主若解放一下思 ...

谢谢一指禅62老师写的代码和点拨。由于我是一个VBA文盲,不知上述代码应粘贴在什么地方、粘贴后汇总表的公式还保留不保留?还望老师详细赐教,以免学生照搬。再谢!

TA的精华主题

TA的得分主题

发表于 2016-6-1 16:16 | 显示全部楼层
laoshenji 发表于 2016-6-1 15:35
谢谢一指禅62老师写的代码和点拨。由于我是一个VBA文盲,不知上述代码应粘贴在什么地方、粘贴后汇总表的 ...



速度应该有所提高,但不会是楼主要求的速度。
求汇总表代码.zip (55.11 KB, 下载次数: 78)


TA的精华主题

TA的得分主题

 楼主| 发表于 2016-6-1 16:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 laoshenji 于 2016-6-2 17:00 编辑
一指禅62 发表于 2016-6-1 16:16
速度应该有所提高,但不会是楼主要求的速度。

万分感谢一指禅62老师的热心解答和实例。学生想请问老师:您的代码粘贴在哪里,我没查看到,恳请老师指点。经测试,对18楼附件进行操作时,明细账的记账速度确实有所提高,但《汇总表》却不那么“听话”了,如将月份更换后有的表现的很慢,有的月份甚至未反应,还有的月份(尤其是点击超链接之后)整个B列都是同一品名(如都是D),这在以前是没有的事。以上还请老师费心解决。再谢!

TA的精华主题

TA的得分主题

发表于 2016-6-2 22:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

楼主好!借用您的数据按我的习惯做了一个文件,因与您的思路相去甚远而另开帖。如有兴趣请移步

http://club.excelhome.net/thread-1281634-1-1.html

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

本版积分规则

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

GMT+8, 2024-5-13 20:09 , Processed in 0.045737 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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