ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 物料成本核算先进先出分解显示

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-5-8 13:26 | 显示全部楼层
shaokui123 发表于 2012-5-8 13:14
能不能再增加点小功能,就是还有一个盘点录入表,里面的格式差不多,能不能一键自动获取盘点表中每个不同 ...

所以要提出原始数据表。
VBA编程与函数有较大区别。

TA的精华主题

TA的得分主题

发表于 2012-5-8 21:19 | 显示全部楼层
yjh_27 发表于 2012-5-8 13:12
25L 与8L 是同样的,只是添加了“分解”按钮

分解可多次执行,会自动加行或删行

不好意思,8楼的没注意到有代码
代码能全部注释一下吗
今下午不知道怎么原帐号登陆不上了,这是新注册的账号,还是我

TA的精华主题

TA的得分主题

发表于 2012-5-8 21:20 | 显示全部楼层
yjh_27 发表于 2012-5-8 13:26
所以要提出原始数据表。
VBA编程与函数有较大区别。

好的,原始表我明天叫朋友给处理一下传上来
太感谢了

TA的精华主题

TA的得分主题

发表于 2012-5-8 21:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 yjh_27 于 2012-5-8 21:44 编辑

  1. Sub aa()
  2.     r = Range("a65536").End(3).Row  '某物料末行
  3.     r0 = Range("A" & r).End(3).Row  '某物料首行
  4.    
  5.    
  6.     Do
  7.     s0 = 0  '上月盘存合计
  8.     s1 = 0   '本月入库合计
  9.     s2 = 0   '本月盘存
  10.     '/计算s0 s1 s2
  11.     For i = r0 To r
  12.         If "盘" Like "[" & Cells(i, 4) & "]" Then
  13.             If Cells(i, 3) = "" Then
  14.                 s2 = Cells(i, 5)     '本月盘存
  15.                 Exit For
  16.             Else
  17.                 s0 = s0 + Cells(i, 5)
  18.             End If
  19.         Else
  20.             s1 = s1 + Cells(i, 5)
  21.         End If
  22.     Next
  23.    
  24.     s3 = s0 + s1 - s2   '本月消耗
  25.     r1 = r - i      '已有分解行数
  26.     '开始分解
  27.     For i1 = r0 To i - 1
  28.         If Cells(i1, 5) >= s3 Then   '有剩余
  29.             s5 = Cells(i1, 5) - s3
  30.             s3 = 0
  31.             If r1 <= 0 Then     '已有分解行用完,插入新行
  32.                 Rows(r - r1 + 1).Insert Shift:=xlDown
  33.             End If
  34.             '写入数据
  35.             Cells(r - r1 + 1, 1) = Cells(i1, 1)
  36.             Cells(r - r1 + 1, 2) = Cells(i1, 2)
  37.             Cells(r - r1 + 1, 3) = Cells(i1, 3)
  38.             Cells(r - r1 + 1, 4) = Cells(i, 4)
  39.             Cells(r - r1 + 1, 5) = s5
  40.             Cells(r - r1 + 1, 6) = Cells(i1, 3) * s5
  41.             r1 = r1 - 1
  42.         
  43.         Else
  44.             s3 = s3 - Cells(i1, 5) '用完,减消耗
  45.         End If
  46.     Next
  47.    
  48.     If r1 > 0 Then  '已有分解行未用完,删除
  49.         Rows(r - r1 + 1).Resize(r1).Delete Shift:=xlUp
  50.     End If
  51.    
  52.     '/下一物料首末行
  53.     r = Range("A" & r0).End(3).Row
  54.     r0 = Range("A" & r).End(3).Row
  55.     Loop While r > 1   '循环至1行
  56. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2012-5-9 16:55 | 显示全部楼层
For i = r0 To r
12.        If "盘" Like "[" & Cells(i, 4) & "]" Then
13.            If Cells(i, 3) = "" Then
这几句是什么意思啊
还有刚才又发现了一个 ,就是比如苹果那个物料,我把3月份苹果改一下去名字,再点击分解,竟然还能自动运算,没有报错

TA的精华主题

TA的得分主题

发表于 2012-5-9 18:48 | 显示全部楼层
shaokui1234 发表于 2012-5-9 16:55
For i = r0 To r
12.        If "盘" Like "[" & Cells(i, 4) & "]" Then
13.            If Cells(i, 3) ...

原始数据已假设按给出格式准备好,无误,所以没有检查环节。如需要则明确要求,另加代码。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-14 23:48 | 显示全部楼层
yjh_27 发表于 2012-5-9 18:48
原始数据已假设按给出格式准备好,无误,所以没有检查环节。如需要则明确要求,另加代码。

不好意思,这两天有事没在家
新作了附件,请您查看帮忙 新模拟.rar (21.33 KB, 下载次数: 19)

TA的精华主题

TA的得分主题

发表于 2012-5-15 09:18 | 显示全部楼层
你确认分解数据要插入原始核算表?下月还在本核算表继续分解,还是另准备新的原始核算表?

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-15 18:13 | 显示全部楼层
yjh_27 发表于 2012-5-15 09:18
你确认分解数据要插入原始核算表?下月还在本核算表继续分解,还是另准备新的原始核算表?

对,核算表就是个累计,每个月都在一个表里操作
实际的表格都积攒了两年多的数据了

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-5-16 22:16 | 显示全部楼层
期待着期待着,这两天白天有事不能上网,只能晚上来看看
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-10-4 08:25 , Processed in 0.032168 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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