大家好!前面三節,我們倉庫出入庫報表實現了出入庫增加,庫位庫存自動生成。這一節,我們來實現出入庫報表的查詢、删除、修改還有工作表之間的跳轉功能。這裡,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的小技巧。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!