ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 根据订单代码,在库存内找出订单所要代码的数量

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-8-9 11:24 | 显示全部楼层 |阅读模式
出《订单表》里面代码所对应的数量,在《库存表》G列用什么公式可以自动分配数量。出库时按“生产日期”先后顺序出库。
比如,《订单表》代码A11 要出库750件,
而且这代码,在《库存表》ES-001-01、ES-001-02、ES-001-03、ES-001-04货位有这些货,如果一个货位的数量不够时,自动在《库存表》查找代码为A11的其它货位的数量,直到《订单表》代码A11需出库的数量为止,(如果库存不够时,库存有多少出多少),如果同时匹配对《订单表》要出库的所有代码时,用VBA怎么实现在“库存表”G列出库数的自动匹配?请大侠帮忙。谢谢! 详见附件。

出库表.rar

3.34 KB, 下载次数: 73

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-9 12:11 | 显示全部楼层
请高手帮忙!多谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-9 16:28 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-8-9 16:57 | 显示全部楼层
Sub fig168()


Set x = CreateObject("msxml2.domdocument")
Set r = x.createelement("root")
x.appendchild r
For i = 1 To Sheet1.[b65535].End(xlUp).Row
Set aa = x.createelement(Sheet1.Cells(i, "b"))
aa.Text = Sheet1.Cells(i, "b")
Set bb = x.createelement(Sheet1.Cells(i, "b"))
bb.Text = Sheet1.Cells(i, "c")
r.appendchild (aa)
r.appendchild (bb)
Next
y = 2
Do While Sheet2.Cells(y, "d") <> ""
rr = "//" & Sheet2.Cells(y, "d")
Set List = r.selectsinglenode(rr)
If Not List Is Nothing Then
If Val(List.nextsibling.Text) > 0 Then
If Sheet2.Cells(y, "f") <= Val(List.nextsibling.Text) Then

Sheet2.Cells(y, "g") = Sheet2.Cells(y, "f")

kk = Val(List.nextsibling.Text) - Val(Sheet2.Cells(y, "f"))

List.nextsibling.Text = kk

Else

Sheet2.Cells(y, "g") = Val(List.nextsibling.Text)

List.nextsibling.Text = 0
End If
'if sheet2.Cells(






End If


End If
y = y + 1
Loop



End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-9 17:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 figfig 于 2009-8-9 16:57 发表
Sub fig168()


Set x = CreateObject("msxml2.domdocument")
Set r = x.createelement("root")
x.appendchild r
For i = 1 To Sheet1..End(xlUp).Row
Set aa = x.createelement(Sheet1.Cells(i, "b"))
aa.T ...



非常感谢:figfig  大侠,可不可以上传附件。本人对VBA昨天才开始学习入门知识。还请见谅。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-9 18:13 | 显示全部楼层
原帖由 figfig 于 2009-8-9 16:57 发表
Sub fig168()


Set x = CreateObject("msxml2.domdocument")
Set r = x.createelement("root")
x.appendchild r
For i = 1 To Sheet1..End(xlUp).Row
Set aa = x.createelement(Sheet1.Cells(i, "b"))
aa.T ...


大侠我在运行中出现了,“系统错误 &H80004005 (-2147467259).未指定的错误。”这是什么原因。

VBA拣货单.rar

257.27 KB, 下载次数: 141

TA的精华主题

TA的得分主题

发表于 2009-8-9 19:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub fig168()


Set x = CreateObject("msxml2.domdocument")
Set r = x.createelement("xml")
x.appendchild r
For i = 1 To Sheet1.[a65535].End(xlUp).Row
Set rr = x.createelement("root")
kk = Sheet1.Cells(i, "a")
'kk = Replace("kk", "-", "")


Set aa = x.createelement("name")
aa.Text = kk
Set bb = x.createelement("amt")
bb.Text = Sheet1.Cells(i, "b")
rr.appendchild (aa)
rr.appendchild (bb)
r.appendchild (rr)
Next
y = 2
Do While Sheet4.Cells(y, "d") <> ""

ll = Sheet4.Cells(y, "d")


Set List = r.SelectSingleNode("//name[text()='" & ll & "']")
If Not List Is Nothing Then
'Debug.Print List.LastChild.Text
If Val(List.NextSibling.Text) > 0 Then
If Sheet4.Cells(y, "e") <= Val(List.NextSibling.Text) Then

Sheet4.Cells(y, "f") = Sheet4.Cells(y, "e")

kk = Val(List.NextSibling.Text) - Val(Sheet4.Cells(y, "e"))

List.NextSibling.Text = kk

Else

Sheet4.Cells(y, "f") = Val(List.NextSibling.Text)
Debug.Print List.NextSibling.Text
List.NextSibling.Text = 0
End If
'if sheet4.Cells(






End If


End If
y = y + 1
Loop



End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-9 20:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 figfig 于 2009-8-9 19:05 发表
Sub fig168()


Set x = CreateObject("msxml2.domdocument")
Set r = x.createelement("xml")
x.appendchild r
For i = 1 To Sheet1.[a65535].End(xlUp).Row
Set rr = x.createelement("root")
kk = Sheet1 ...


figfig 大侠,非常谢谢,OK了。解决了大问题。以前我用的是函数,运行起来非常之慢。现在好了,十来秒就搞定。谢谢。

[ 本帖最后由 hyd1205 于 2009-8-9 20:15 编辑 ]

TA的精华主题

TA的得分主题

发表于 2013-12-6 11:24 | 显示全部楼层
入库日期        生产日期        最终位置号全        代码        库存数        订单数        结余
2009/7/8        2009/7/30        EG-009-01A        GWH060EK732-R72-S        12        12        0
2015/4/3        2015/2/5        EG-009-01b        GWH060EK732-R72-S        1        1        0
2011/4/5        2011/2/3        EG-009-01C        GWH060EK732-R72-S        9        7        2
如上,我预定20件,有效期不一致的,根据先进先出的原则,应在EG-009-01A取12件,EG-009-01C取8件,还请指教!

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-3-5 19:53 | 显示全部楼层
caspar.cai 发表于 2013-12-6 11:24
入库日期        生产日期        最终位置号全        代码        库存数        订单数        结余
2009/7/8        2009/7/30        EG-009-01A        GWH060EK732-R7 ...

在执行语句前,把生产日期排一下序就可以了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-10 03:29 , Processed in 0.025765 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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