ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] BOM成本(分享与求助,难度超级大 )

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2016-2-3 17:05 | 显示全部楼层 |阅读模式
请教高手帮忙合并简化以下附件代码,压缩EXCEL容量,提高运行速度!想把附件调整成截图格式,逻辑都一样,只是代码需变更相关位置。谢了!附件代码是根据各老师的代码的组合而成的。
计算.jpg

计算.zip

1.46 MB, 下载次数: 619

TA的精华主题

TA的得分主题

发表于 2016-2-4 14:51 | 显示全部楼层
多说几句:分享什么、求助什么

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-2-18 15:21 | 显示全部楼层
yjh_27 发表于 2016-2-4 14:51
多说几句:分享什么、求助什么

分享这个例子,基本上可以运行,只是我觉得运行速度太慢,很多宏是录制的,能不能直接把几个宏的逻辑合并,简化代码行数。谢谢!

TA的精华主题

TA的得分主题

发表于 2016-4-27 00:22 | 显示全部楼层
1、你的表格严重“虚胖”,未压缩时6M多,压缩后仍有1.5M,这可能使EXCEL运行变慢;
2、你新要求的表格样式仍然非常杂乱,原始数据项和待计算的项,各列互相穿插在一起,我费了很大功夫才理清它们的关系。而且,这种样式使得程序运算的结果也必须分成多块区域来写入表格,不便于代码设计、检查以及最终结果的输出。
3、你原有代码中仍在往工作表中写公式,拖累了运算速度。
4、对于严格按树型层级关系展开的BOM表,无需使用字典,用一个二维数组变量即可保存中间结果,用于保存当前物料的上层或下层数据、查询输出。即使BOM层级达10层、待计算的项达10项,预设一个10×10的二维数组即可满足要求,运算量更少,速度更快。

TA的精华主题

TA的得分主题

发表于 2016-4-27 00:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 cbtaja 于 2016-4-30 11:38 编辑

以下是我做的代码及相应附件(仅240KB):
楼主所提供附件要求已经更新,所编写的代码也已经相应更新在后面的回贴中
  1. Option Explicit
  2. Sub 计算()
  3. '-----代码已经按楼主新增要求重新编写
  4. '------请到最新的回贴中下载
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-4-28 15:10 | 显示全部楼层
cbtaja 发表于 2016-4-27 00:33
以下是我做的代码及相应附件(仅240KB):

cbtaja老师好!你做代码的表格数据OK! 在下是从事财务成本的,还有两点疑问与需求。
1.你做的代码能够适应无论BOM有多少层级都适应么(当然目前的够用,但希望能通用更多层)?
2. 我新增了工序工时4,工序工时5,工序工时6,对应工时汇总也一并计算出  
3.总成本栏目前显示的是成品(半成品)的,我想为空格时,输出采购件 对应0层用量*单价的值
4.对应顶层母件,如果本行对应层级为0,取B列数值,否则就取母件本单元格上一单元格值。
如附件“习惯性”表格与截图,老师,前面你已经领会了我所有要核算的逻辑,这应该不难了,谢了!
2016-04-28_150931.jpg

BOM计算.zip

76.83 KB, 下载次数: 279

TA的精华主题

TA的得分主题

发表于 2016-4-28 16:05 | 显示全部楼层
chengshanming 发表于 2016-4-28 15:10
cbtaja老师好!你做代码的表格数据OK! 在下是从事财务成本的,还有两点疑问与需求。
1.你做的代码能够 ...

对于问题1:目前的代码适应0~9级以内;如果你表格的层级不是通过字符个数宽度缩进的方式表示,而直接用数值表示,则可以简单修改代码适应任意层级。

对于问题2、3、4:正如前贴中所述,由于你的已知数据列和需要求算的数据列相互穿插在一起,当需要求算的工序增加时,无法编写自动适应的代码,每增加一道工序,代码就得做大修改。虽然在现有的基础上,问题并不算难,但是非常麻烦。

有一个非常经典的定义:程序 = 数据结构+算法。
也就是说,当我们把需要的原始数据收集回来后,以一定的表现形式存放起来,就形成了数据源的数据结构。针对这样的数据存放方式(数据结构),编写有相应逻辑关系的代码(即算法),就形成了程序。
显然,源数据结构是基础,算法是手段。所以,合理有序的源数据结构,对于算法的顺利实现有重大好处。而杂乱的数据结构,则造成算法的实现很困难,效率很低下,甚至完全无法编写出可达成目标的算法代码。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-4-28 16:09 | 显示全部楼层
cbtaja 发表于 2016-4-28 16:05
对于问题1:目前的代码适应0~9级以内;如果你表格的层级不是通过字符个数宽度缩进的方式表示,而直接用数 ...

多谢老师!

TA的精华主题

TA的得分主题

发表于 2016-4-28 19:43 | 显示全部楼层
本帖最后由 cbtaja 于 2016-4-30 14:21 编辑

附件已经更新:固定6个工序以内,BOM表的层级以文本缩进宽度表示
BOM计算.rar (42.66 KB, 下载次数: 791)

TA的精华主题

TA的得分主题

发表于 2016-4-28 21:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你好,点excel查看代码,没有模块,这是什么情况?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-25 09:35 , Processed in 0.037135 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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