excel自制MRP系统:[2]入库单制作
来源:网络收集 点击: 时间:2024-08-02打开“单据文件”工作表,点开入库单工作表,从A1单元格起,制作一个入库单表格,格式内容如图所示。

在F2单元格插入日期函数:=TODAY()。插入日期函数的作用在于,在我们以后录单时可以自动生成制单日期,以便提高工作效率。

在B4(品名)单元格输入公式:=IF(LEN(A4)=0,,IF(COUNTIF(物料信息!A:A,A4)=0,无此编码,VLOOKUP(A4,物料信息!A:F,2,FALSE))),然后把公式往下填充到B13单元格。
这个公式的意思是:如果A4单元格为空(即没A4没有录入物料编码),则B4单元格显示为空。如果A4单元格不为空(即有录入编码),但在“物料信息”的A列没有A4单元格中的这个编码,B4单元格显示为“无此编码”。如果两个条件都满足,则显示对应的查找所得的值。篇幅问题,至于每个具体函数的语法逻辑、用途,这里就不作详细解释了。

在C4(规格)单元格输入公式:=IF((LEN(B4)=0)+(B4=无此编码),,VLOOKUP(A4,物料信息!A:F,3,FALSE)),然后把公式往下填充到C13单元格。
公式的意思是,如果B4单元格为空,或者B4单元格为“无此编码”,则C4单元格显示为空,否则返回VLOOKUP函数的查找值。

在D4(单位)单元格输入公式:=IF((LEN(B4)=0)+(B4=无此编码),,VLOOKUP(A4,物料信息!A:F,4,FALSE)),然后把公式往下填充到D13单元格。
公式的意思如C4。

在E4(单价)单元格输入公式:=IF((LEN(B4)=0)+(B4=无此编码),,VLOOKUP(A4,物料信息!A:F,5,FALSE)),然后把公式往下填充到E13单元格。

在G4(金额)单元格输入公式:=IF((F40)*(E40),E4*F4,),并把公式往下填充到G13单元格。
这个公式的意思是,如果F4单元格(数量)和E4单元格(单价)都大于0时,则计算E4*F4(金额),否则G4显示为空。

在F14(合计数量)单元格输入公式:=IF(SUM(F4:F13)=0,,SUM(F4:F13))。公式的意是,如果F4:F13这个区域的值,加起来的和是0,F14就显示为空,否则 就对这个区域求和。

复制F14单元格,粘贴到G14,公式自动变为:=IF(SUM(G4:G13)=0,,SUM(G4:G13))

好了,现在入库单自身的制作我们已经做完了,接下来我们把单据中的数据用公式整理到本工作表的另一个区域去,以便单据数据保存到“入库记录”工作表后整齐一点。
在单元格O3:AA3,分别录入字段名:编码,客户名,“日期”,“单据号”,“商品名称”,“规格”,“单价”,“单位”,“数量”,“金额”,“备注”,“制单”,“月份”。

在O4单元格输入公式:=IF(LEN(A4)0,A4,)
在P4单元格输入公式:=IF((LEN($B$2)0)*(LEN(B4)0),$B$2,)
在Q4单元格输入公式:=IF((LEN($F$2)0)*(LEN(B4)0),$F$2,)
在R4单元格输入公式:=IF((LEN($B$2)0)*(LEN(B4)0),RIGHT($H$2,10),)
在S4单元格输入公式:=IF((LEN($B4)0),B4,)
在T4单元格输入公式:=IF((LEN($B4)0),C4,)
在U4单元格输入公式:=IF((LEN($B4)0),D4,)
在V4单元格输入公式:=IF((LEN($B4)0),E4,)
在W4单元格输入公式:=IF((LEN($B4)0),F4,)
在X4单元格输入公式:=IF((LEN($B4)0),G4,)
在Y4单元格输入公式:=IF((LEN(H4)0),H4,)
在Z4单元格输入公式:=IF((LEN($B$15)0)*(LEN(B4)0),$B$15,)
在AA4单元格输入公式:=IF(LEN(Q4)0,MONTH(Q4),)
公式写完后全部填充到第十三行。完毕后把这个区域隐藏起来。

接下来我们编写一个宏。按Alt+F11,打开VBA编辑器,插入一个模块,在编辑框里粘贴如下代码:
Sub 入库单保存()
入库单保存 Macro
Sheets(入库单).Select
With Sheets(入库记录)
x = .Range(d65536).End(xlUp).Row + 1
For I = 0 To 15
.Cells(x + I, 4) = Cells(I + 4, 15)
.Cells(x + I, 5) = Cells(I + 4, 16)
.Cells(x + I, 6) = Cells(I + 4, 17)
.Cells(x + I, 7) = Cells(I + 4, 18)
.Cells(x + I, 8) = Cells(I + 4, 19)
.Cells(x + I, 9) = Cells(I + 4, 20)
.Cells(x + I, 10) = Cells(I + 4, 21)
.Cells(x + I, 11) = Cells(I + 4, 22)
.Cells(x + I, 12) = Cells(I + 4, 23)
.Cells(x + I, 13) = Cells(I + 4, 24)
.Cells(x + I, 14) = Cells(I + 4, 25)
.Cells(x + I, 15) = Cells(I + 4, 26)
.Cells(x + I, 16) = Cells(I + 4, 27)
Next
End With
Range(b2,g2,a4:a13,f4:f13,h4:h13,b15,g15).ClearContents
s = Range(h2)
Range(h2) = Left(s, 3) Right(201501000 Right(s, 10) + 1, 10)
MsgBox 保存完毕, , 提示
End Sub
保存一下,关闭VBA编辑窗口。


在“入库单”的表格内插入一个自选图形,形状背景什么的随意,标上文字:“保存单据”。

把插入的那个自选图形指定到我们刚才编写的那宏。方法:选中图形——单击右键——在弹出的对话框中选择“指定宏”——在接着弹出的对话框中先选中宏的名字,再把宏的保存位置改为“当前工作薄”——确定。至此,入库单的制做就完成了。保存一下工作薄,关闭。


本经验属系列经验,如果你只是单看一篇的话,可能对你没有多大收获,更不会为你解决任何问题。所以,敬请关注后续的系列经验。
本严禁用于任何商业用途,违者必将追究法律责任
相关内容链接:http://jingyan.baidu.com/article/60ccbceb61d32d64cbb1975b.html
excel进出存excel进出存版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_1053430.html