从零开始制作仓库出入库报表(实现增、删、改、查)<四> |
您所在的位置:网站首页 › wps表格清除零 › 从零开始制作仓库出入库报表(实现增、删、改、查)<四> |
大家好!前面三节,我们仓库出入库报表实现了出入库增加,库位库存自动生成。这一节,我们来实现出入库报表的查询、删除、修改还有工作表之间的跳转功能。这里,EK已经实现了出入库报表目前需要的功能。我们来看一下效果图。 图1 工作表间跳转 图2 入库单据的增加、查询、修改、删除功能效果图 图3 库位库存功能效果图 图 4 入库效果图 从图1到图4中,演示了出入库表格的大部分内容。图2 只希望能对大家有所帮助。 好了。看完效果图。我们现在接着第三节开始制作。 首先,把主页的表格给修饰一下。如下图: 图5 主页 其中的6个图标,EK是利用EXCEL自带的图形和文本框组合制作的。这里EK给大家演示一个图标的制作过程。后面的大家可以自己制作。如下图。 图6 图标的制作过程 大家可以试着做一下,当然也可以上网搜索图标。这里提供一个方法。 2、在表添加图标和按钮。如下图所示。 图7 添加图标和按钮 3、在模块1 中添加如下代码: Sub 清空单据信息() Sheets("单据操作").Range("A4:A15,C4:i15") = "" End Sub Sub 入库单() Sheets("单据操作").Range("a2") = "入库单" Sheets("单据操作").Range("i4:i15") = "" End Sub Sub 出库单() Sheets("单据操作").Range("a2") = "出库单" Sheets("单据操作").Range("i4:i15") = "" End Sub 图8 模块1 中添加代码 4、在VBE中添加窗体,列表框,选项按钮2个,命令按钮两个。 设置如下: 窗体名称->UFDJ, caption->单据查询 选项按钮1名称->OB1,caption->入库流水账,value->True 选项按钮2名称->OB2,caption->出库流水账 命令按钮1名称->CB1,caption->单据查询 命令按钮2名称->CB2,caption->关闭 图9 插入用户窗体 双击用户窗体。写入代码: Dim intnum As Integer Private Sub CB1_Click() If ListBox1.ListIndex >= 0 Then Dim LstStr As String LstStr = Trim(CStr(ListBox1.List(ListBox1.ListIndex))) s = InStr(LstStr, "-") + 1 e = InStr(2, LstStr, Left(LstStr, 1)) estr = Mid(LstStr, s, e - s) MsgBox estr If Left(LstStr, 1) = "入" Then Call 出入库单据(1, estr) ElseIf Left(LstStr, 1) = "出" Then Call 出入库单据(2, estr) End If Unload Me End If End Sub Private Sub 查询单据(OBNum As Integer) Dim d As Object Set d = CreateObject("Scripting.Dictionary") If OBNum = 1 Then hrq = Sheets("入库流水账").Cells(Sheets("入库流水账").Rows.Count, 1).End(xlUp).Row '【入库流水账】第1列最后一行行号 ArrRK = Sheets("入库流水账").Range("A4:H" & hrq) For i = 1 To UBound(ArrRK) d(ArrRK(i, 4)) = "入库单号-" & ArrRK(i, 4) & "入库时间-" & ArrRK(i, 3) & "入库类型:" & ArrRK(i, 8) Next Erase ArrRK ListBox1.List = d.items() ElseIf OBNum = 2 Then hcq = Sheets("出库流水账").Cells(Sheets("出库流水账").Rows.Count, 1).End(xlUp).Row '【出库流水账】第1列最后一行行号 ArrCK = Sheets("出库流水账").Range("A4:H" & hcq) For i = 1 To UBound(ArrCK) d(ArrCK(i, 4)) = "出库单号-" & ArrCK(i, 4) & "出库时间-" & ArrCK(i, 3) & "出库类型:" & ArrCK(i, 8) Next Erase ArrCK ListBox1.List = d.items() End If End Sub Private Sub CB2_Click() Unload Me End Sub Private Sub OB1_Click() Call 查询单据(1) End Sub Private Sub OB2_Click() Call 查询单据(2) End Sub Private Sub UserForm_Activate() Call 查询单据(1) OB2.Value = False OB1.Value = True ListBox1.SetFocus End Sub Private Sub UserForm_Initialize() ListBox1.Font.Size = 12 UFDJ.BackColor = &HFF8080 End Sub Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Call CB1_Click End Sub 图10 代码1 图11 代码2 5、 添加模块2 和模块3 如图: 图12 添加模块2和模块3 模块2 中代码: Sub 显示单据查询窗口() UFDJ.Show End Sub '单据查询 Sub 出入库单据(ListType As Integer, ByVal ListStr As String) Dim n As Integer n = 0 If ListType = 1 Then Sheets("单据操作").Range("a4:a15,c4:i15") = "" Sheets("单据操作").Range("a2") = "入库单" hrq = Sheets("入库流水账").Cells(Sheets("入库流水账").Rows.Count, 1).End(xlUp).Row '【入库流水账】第1列最后一行行号 For i = 4 To hrq If Sheets("入库流水账").Range("d" & i).Value = ListStr Then Sheets("入库流水账").Range("A" & i & ":H" & i).Copy Sheets("单据操作").Range("a" & 4 + n) Sheets("单据操作").Range("i" & 4 + n) = i n = n + 1 End If Next ElseIf ListType = 2 Then Sheets("单据操作").Range("a4:a15,c4:i15") = "" Sheets("单据操作").Range("a2") = "出库单" hcq = Sheets("出库流水账").Cells(Sheets("出库流水账").Rows.Count, 1).End(xlUp).Row '【出库流水账】第1列最后一行行号 For i = 4 To hcq If Sheets("出库流水账").Range("d" & i).Value = ListStr Then Sheets("出库流水账").Range("A" & i & ":H" & i).Copy Sheets("单据操作").Range("a" & 4 + n) Sheets("单据操作").Range("i" & 4 + n) = i n = n + 1 End If Next End If End Sub Sub 单据修改() Msg = MsgBox("是否修改表单?", vbInformation + vbYesNo, "提示") If Msg = vbNo Then Exit Sub End If If Sheets("单据操作").Range("A2") = "入库单" Then n = 1 hrq = Sheets("入库流水账").Cells(Sheets("入库流水账").Rows.Count, 1).End(xlUp).Row '【入库流水账】第1列最后一行行号 For i = 4 To 15 If Sheets("单据操作").Range("A" & i) "" And Sheets("单据操作").Range("i" & i) "" Then Sheets("单据操作").Range("A" & i & ":H" & i).Copy Sheets("入库流水账").Range("a" & Sheets("单据操作").Range("i" & i).Value) ElseIf Sheets("单据操作").Range("A" & i) "" And Sheets("单据操作").Range("i" & i) = "" Then Sheets("单据操作").Range("A" & i & ":H" & i).Copy Sheets("入库流水账").Range("a" & hrq + n) n = n + 1 End If Next Sheets("单据操作").Range("A4:A15,C4:i15") = "" ElseIf Sheets("单据操作").Range("A2") = "出库单" Then hcq = Sheets("出库流水账").Cells(Sheets("出库流水账").Rows.Count, 1).End(xlUp).Row '【出库流水账】第1列最后一行行号 n = 1 For i = 4 To 15 If Sheets("单据操作").Range("A" & i) "" And Sheets("单据操作").Range("i" & i) "" Then Sheets("单据操作").Range("A" & i & ":H" & i).Copy Sheets("出库流水账").Range("a" & Sheets("单据操作").Range("i" & i).Value) ElseIf Sheets("单据操作").Range("A" & i) "" And Sheets("单据操作").Range("i" & i) = "" Then Sheets("单据操作").Range("A" & i & ":H" & i).Copy Sheets("出库流水账").Range("a" & hrq + n) n = n + 1 End If Next Sheets("单据操作").Range("A4:A15,C4:i15") = "" End If End Sub Sub 删除表单() Msg = MsgBox("是否删除表单?", vbInformation + vbYesNo, "提示") If Msg = vbNo Then Exit Sub End If If Sheets("单据操作").Range("A2") = "入库单" Then For i = 15 To 4 Step -1 If Sheets("单据操作").Range("A" & i) "" And Sheets("单据操作").Range("i" & i) "" Then Sheets("入库流水账").Rows(Sheets("单据操作").Range("i" & i)).Delete End If Next Sheets("单据操作").Range("A4:A15,C4:i15") = "" ElseIf Sheets("单据操作").Range("A2") = "出库单" Then For i = 15 To 4 Step -1 If Sheets("单据操作").Range("A" & i) "" And Sheets("单据操作").Range("i" & i) "" Then Sheets("出库流水账").Rows(Sheets("单据操作").Range("i" & i)).Delete End If Next Sheets("单据操作").Range("A4:A15,C4:i15") = "" Else MsgBox "单据删除错误,请查看标题!" End If End Sub 图12 模块2 中代码1 图13 模块2 中代码2 图14 模块2 中代码3 模块3中代码: Sub 隐藏() For Each Sh1 In Worksheets If Sh1.Name "主页" Then Sh1.Visible = False End If Next End Sub Sub 跳转至主页() Call 隐藏 End Sub Sub 跳转至基础信息() Call 隐藏 Sheets("基础信息").Visible = True Sheets("基础信息").Activate End Sub Sub 跳转至入库流水() Call 隐藏 Sheets("入库流水账").Visible = True Sheets("入库流水账").Activate End Sub Sub 跳转至出库流水() Call 隐藏 Sheets("出库流水账").Visible = True Sheets("出库流水账").Activate End Sub Sub 跳转至单据操作() Call 隐藏 Sheets("单据操作").Visible = True Sheets("单据操作").Activate End Sub Sub 跳转至库存跟踪() Call 隐藏 Sheets("库存跟踪表").Visible = True Sheets("库存跟踪表").Activate End Sub Sub 显示全部表格() For Each Sh1 In Worksheets Sh1.Visible = True Next Sheets("主页").Activate End Sub 图15 模块3 中代码 6、在ThisWorkbook中添加代码: Private Sub Workbook_Open() Call 隐藏 End Sub 图16 ThisWorkbook添加代码 7、为每个图标和按钮添加指定宏: 图17 图标指定宏 这里只演示了【主页】表中的指定宏。后面的,EK留给大家自己去指定相应的宏。EK给大家准备了一个表格。 图18 图标对应的宏 到这里,从零开始制作出入库表全部已经完成了。如果,有不懂的地方,可以在评论区告诉EK。如果想获得文中的文件,可以关注私信EK数字代表的节数。 最后,感谢小伙伴们的观看,我是EK。如果上述内容能够帮助到你们,希望你们能点赞,关注,评论,转发,你们不清楚的地方我会尽力为大家解答,谢谢大家的支持。我会给大家带来更多关于EXCEL的小技巧。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |