Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1863|回复: 20

[已解决]大神指教如何减去库存表库存

[复制链接]
发表于 2022-4-30 16:38 | 显示全部楼层 |阅读模式
Desktop.zip (270.59 KB, 下载次数: 8)
发表于 2022-5-1 11:03 | 显示全部楼层
Sub TEST()
    ARR = Range("H2:Z" & Range("B65536").End(3).Row)
    Workbooks.Open (ThisWorkbook.Path & "\工厂库存表.xlsm")
    With ActiveWorkbook.ActiveSheet
        BRR = .Range("A2:K" & Range("A65536").End(3).Row)
        For I = 1 To UBound(ARR)
            If ARR(I, 19) = "是" Then
                For J = 1 To UBound(BRR)
                    If ARR(I, 8) = BRR(J, 1) Then
                        If BRR(J, 11) <> "" Then
                            BRR(J, 11) = BRR(J, 11) - ARR(I, 1)
                        Else
                            BRR(J, 11) = BRR(J, 10) - ARR(I, 1)
                        End If
                        ARR(I, 19) = "已处理"
                    End If
                Next
            End If
        Next
        .Range("A2").Resize(UBound(BRR), 11) = BRR
    End With
    ActiveWorkbook.Close True
    Range("H2").Resize(UBound(ARR), 19) = ARR
    MsgBox "处理完毕!"
End Sub
回复

使用道具 举报

发表于 2022-5-1 11:06 | 显示全部楼层
处理页中对应行“K”列会标注“已处理”,若要清除也很简单!
回复

使用道具 举报

发表于 2022-5-1 11:07 | 显示全部楼层
工厂库存表与处理页放在同一文件夹。
回复

使用道具 举报

 楼主| 发表于 2022-5-1 12:15 | 显示全部楼层
zjdh 发表于 2022-5-1 11:07
工厂库存表与处理页放在同一文件夹。

处理页和库存表不能再一个文件夹,因为处理页需要读取其他表格进行工作,要分开放的,谢谢
回复

使用道具 举报

 楼主| 发表于 2022-5-1 12:25 | 显示全部楼层
zjdh 发表于 2022-5-1 11:07
工厂库存表与处理页放在同一文件夹。

感谢大神,试了基本正常,就是两个问题
第一,不能放在同一个文件夹
第二,有没有可能实现当库存剩余量比如低于30时 处理出现提示库存不足,这样子
回复

使用道具 举报

发表于 2022-5-2 11:36 | 显示全部楼层    本楼为最佳答案   
Sub TEST()
    ARR = Range("H2:Z" & Range("B65536").End(3).Row)
    Workbooks.Open ("D:\库存\工厂库存表.xlsm")
    With ActiveWorkbook.ActiveSheet
        BRR = .Range("A2:K" & Range("A65536").End(3).Row)
        For I = 1 To UBound(ARR)
            If ARR(I, 19) = "是" Then
                For J = 1 To UBound(BRR)
                    If ARR(I, 8) = BRR(J, 1) Then
                        If BRR(J, 11) <> "" Then
                            If (BRR(J, 11) - ARR(I, 1)) < 0 Then MsgBox ARR(I, 8) & "的库存量不够!": GoTo 10
                            BRR(J, 11) = BRR(J, 11) - ARR(I, 1)
                        Else
                            If (BRR(J, 10) - ARR(I, 1)) < 0 Then MsgBox ARR(I, 8) & "的库存量不够!": GoTo 10
                            BRR(J, 11) = BRR(J, 10) - ARR(I, 1)
                        End If
                        ARR(I, 19) = "已处理"
                    End If
                Next
            End If
10      Next
        .Range("A2").Resize(UBound(BRR), 11) = BRR
    End With
    ActiveWorkbook.Close True
    Range("H2").Resize(UBound(ARR), 19) = ARR
    MsgBox "处理完毕!"
End Sub
回复

使用道具 举报

发表于 2022-5-2 11:37 | 显示全部楼层
本帖最后由 zjdh 于 2022-5-2 11:38 编辑

工厂库存表文件存放路径:D:\库存\工厂库存表.xlsm
若库存数不够处理出库数时会提示。

回复

使用道具 举报

 楼主| 发表于 2022-6-1 09:50 | 显示全部楼层
zjdh 发表于 2022-5-2 11:36
Sub TEST()
    ARR = Range("H2:Z" & Range("B65536").End(3).Row)
    Workbooks.Open ("D:\库存\工厂 ...

请教一下大神,这个库存表不单独存放,放在处理页一个工作簿的话 链接怎么改
回复

使用道具 举报

发表于 2022-6-1 09:54 | 显示全部楼层
透明世界1987 发表于 2022-6-1 09:50
请教一下大神,这个库存表不单独存放,放在处理页一个工作簿的话 链接怎么改

是同一个工作簿吗?
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-6 02:00 , Processed in 0.345994 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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