ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 库存管理

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2019-2-24 09:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 忘得快 于 2019-2-24 09:49 编辑
一指禅62 发表于 2019-2-23 19:45
函数公式错了,应该为:

一指禅62老师你好!
按59楼的附件有个问题要请教一下:
DataBase表,2月份DFG001物料入库数量和入库金额合计都是5,明细账查询2月份DFG001物料入库数量和入库金额合计也都是5,
汇总表2月份的收入为什么都是1?
2月份数据明细.jpg 2月份DFG001购入明细.jpg 2月份汇总.jpg

TA的精华主题

TA的得分主题

发表于 2019-2-24 09:49 | 显示全部楼层
一指禅62 发表于 2019-2-23 19:45
函数公式错了,应该为:

不好意思,写错啦!是59楼的附件不是50楼的附件

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-25 08:40 | 显示全部楼层
忘得快 发表于 2019-2-24 09:49
不好意思,写错啦!是59楼的附件不是50楼的附件

谢谢您发现并指出问题!注意代码中的标红处:
        SQL = SQL & " Union All Select 物料编码,入库数量-出库数量,入库金额-出库金额,0,0,0,0 from [DataBase$] where 月<" & Target.Value
        SQL = SQL & " Union All Select 物料编码,0,0,入库数量,入库金额,出库数量,出库金额 from [DataBase$] where 月=" & Target.Value



评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-25 08:42 | 显示全部楼层
汇总表的完整代码,请替换代码并测试
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim rs As New ADODB.Recordset, SQL$, i%
  3.     If Target.Address = "$E$2" Then
  4.         SQL = "select 物料编码,期初数量 as a,期初金额 as b,0 as c,0 as d,0 as e,0 as f from [物品表$] "
  5.         SQL = SQL & " Union All Select 物料编码,入库数量-出库数量,入库金额-出库金额,0,0,0,0 from [DataBase$] where 月<" & Target.Value
  6.         SQL = SQL & " Union All Select 物料编码,0,0,入库数量,入库金额,出库数量,出库金额 from [DataBase$] where 月=" & Target.Value
  7.         SQL = "Select 物料编码,sum(a) as 期初数量,val(format(sum(b)/sum(a),'0.00')) as 期初单价,sum(b) as 期初金额," & _
  8.             "sum(c) as 入库数量,val(format(sum(d)/sum(c),'0.00')) as 入库单价,sum(d) as 入库金额," & _
  9.             "sum(e) as 出库数量,val(format(sum(f)/sum(e),'0.00')) as 出库单价,sum(f) as 出库金额," & _
  10.             "(sum(a)+sum(c)-sum(e)) as 期末数量," & _
  11.             "val(format((sum(b)+sum(d)-sum(f))/(sum(a)+sum(c)-sum(e)),'0.00')) as 期末单价," & _
  12.             "(sum(b)+sum(d)-sum(f)) as 期末金额 from (" & SQL & ") Group by 物料编码"
  13.         SQL = "Select a.物料编码,物料名称,规格,单位,期初数量,期初单价,期初金额,入库数量,入库单价,入库金额," & _
  14.             "出库数量,出库单价,出库金额,期末数量,期末单价,期末金额 " & _
  15.             "from [物品表$] a Left Join (" & SQL & ") b on a.物料编码=b.物料编码"
  16.         rs.Open SQL, cnn, 1, 3
  17.         Range("A5:Z65536").ClearContents
  18.         Range("A5:Z65536").Borders.LineStyle = xlNone
  19.         Range("A5").CopyFromRecordset rs
  20.    
  21.    
  22.         If rs.RecordCount > 0 Then
  23.             i = rs.RecordCount
  24.             With Range("A5").Offset(i, 1)
  25.                 .Value = "合计"
  26.                 .Offset(0, 5).FormulaR1C1 = "=SUM(R5C:R" & i + 4 & "C7)"
  27.                 .Offset(0, 8).FormulaR1C1 = "=SUM(R5C:R" & i + 4 & "C)"
  28.                 .Offset(0, 11).FormulaR1C1 = "=SUM(R5C:R" & i + 4 & "C)"
  29.                 .Offset(0, 14).FormulaR1C1 = "=SUM(R5C:R" & i + 4 & "C)"
  30.             End With
  31.             With Range("A5").Resize(i + 1, 16)
  32.                 .Borders.LineStyle = xlContinuous
  33.                 .Font.Size = 10 '字号,根据需要修改
  34.             End With
  35.         End If
  36.         rs.Close
  37.     End If
  38.     Set rs = Nothing
  39. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2019-2-25 11:17 | 显示全部楼层
一指禅62 发表于 2019-2-25 08:42
汇总表的完整代码,请替换代码并测试

老师您好!.Offset(0, 5).FormulaR1C1 = "=SUM(R5C:R" & i + 4 & "C7)"
是否应改为:
.Offset(0, 5).FormulaR1C1 = "=SUM(R5C:R" & i + 4 & "C)"

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-25 11:39 | 显示全部楼层
忘得快 发表于 2019-2-25 11:17
老师您好!.Offset(0, 5).FormulaR1C1 = "=SUM(R5C:R" & i + 4 & "C7)"
是否应改为:
.Offset(0, 5).Fo ...

是的                           

TA的精华主题

TA的得分主题

发表于 2020-4-2 16:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 laoshenji 于 2020-4-5 08:46 编辑
一指禅62 发表于 2019-2-25 08:42
汇总表的完整代码,请替换代码并测试

按64楼代码未测试成功!

TA的精华主题

TA的得分主题

发表于 2020-4-2 17:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 laoshenji 于 2020-4-2 17:10 编辑

一指禅62老师您好,更换64楼代码并按65楼修改后,汇总表结果不正确的问题,主要是:1、刚打开汇总表时,提示循环引用。2、汇总表错误反映DFG001的购进(本月收入)数量仅为“1”,而明细账正确反映DFG001的购进(本月收入)数量则为“5”。请老师再费心看看,望不吝指教,谢谢!
打开汇总表时提示循环引用.png
QQ截图20200402164152汇总表.png
QQ截图20200402164645明细账001物料.png

64楼代码.rar

56.15 KB, 下载次数: 21

TA的精华主题

TA的得分主题

发表于 2020-4-8 13:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一指禅62老师:可否完善一下,解决您说的“BUG:当前代码不区分 “年”,这倒是硬伤”这个“硬伤”???

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-4-12 15:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wowo000 发表于 2020-4-8 13:23
一指禅62老师:可否完善一下,解决您说的“BUG:当前代码不区分 “年”,这倒是硬伤”这个“硬伤”???

以前写的,我现在来看,已没有修改的意义了。如工作中确有需要,可据需求另起炉灶。


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

本版积分规则

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

GMT+8, 2024-11-17 01:56 , Processed in 0.036874 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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