一、实现入库明细表的内部功能
步骤:
新建表“入库明细”,输入内容并做简单样式设置--设置产品登记或查询区域:选中1-5行—右键—插入。插入的空行用来登记或查询的对应项目如图:
2. 利用VBA制作出入库查询表:
Public Sub 入库登记()
Dim i As Long ‘定义变量
Dim j As Integer
Dim clo As Integer
clo = Sheets("入库明细").[A6].CurrentRegion.Columns.Count ‘统计工作表中数据区域的列数,并赋值给clo
Sheets("入库明细").Select ‘选择入库明细工作表
If Cells(4, 1).Value = "" Then
MsgBox "请输入入库的入库单号!", vbOKOnly & vbInformation, "信息提示"
Exit Sub
End If ‘ 如果没有输入入库单号,系统将自动弹出信息框并退出过程
If Cells(4, 2).Value = "" Then
MsgBox "请输入入库的产品编号号码!", vbOKOnly & vbInformation, "信息提示"
Exit Sub
End If
If Cells(4, 3).Value = "" Then
MsgBox "请输入产品的名称!", vbOKOnly & vbInformaion, "信息提示"
Exit Sub
End If ‘如果没有输入产品名称,系统将自动弹出信息框并退出过程
If Cells(4, 4).Value = "" Then
MsgBox "请输入产品的规格!", vbOKOnly & vbInformation, "信息提示"
Exit Sub
End If ‘如果没有输入规格,系统将自动弹出信息框并退出过程
If Cells(4, 5).Value = "" Then
MsgBox ("请输入产品的单位"), vbOKOnly & vbInformation, "信息提示"
Exit Sub
End If ‘如果没有输入单位,系统将自动弹出信息框并退出过程
If Cells(4, 6) = "" Then
MsgBox ("请输入产品的类别"), vbOKOnly & vbInformation, "信息提示"
Exit Sub
End If ‘如果没有输入类别,系统将自动弹出信息框并退出过程
If Cells(4, 7) = "" Then
MsgBox ("请输入产品的进阶"), vbOKOnly & vbInformation, "信息提示"
Exit Sub
End If ‘如果没有输入进价,系统将自动弹出信息框并退出过程
If Cells(4, 8) = "" Then
MsgBox ("请输入产品的数量"), vbOKOnly & vbInformation, "信息提示"
Exit Sub
End If ‘如果没有输入产品的数量,系统将自动弹出信息框并退出过程
If Cells(4, 9) = "" Then
MsgBox ("请输入产品的入库日期"), vbOKOnly & vbInformation, "信息提示"
Exit Sub
End If ‘如果没有输入产品的入库日期,系统将自动弹出信息框并退出过程
i = Val(Sheets("入库明细").Cells(1, 2).Value) ‘获取已经入库的次数
For j = 1 To clo
Cells(i + 8, j).Value = Cells(4, j).Value ‘进行赋值
Next j
Range(Cells(i + 8, 1), Cells(i + 8, clo)).Select ‘选中添加数据所在单元格区域
End Sub
3. 实现清空入库信息功能:
也就是入库登记或入库明细查询后需要清空单元格区域内的入库产品信息,再进行下一步工作,设置此功能可以一键清除:
Sub 清空()
Dim k As Integer
Dim L As Integer
L = Sheets("入库明细").[A6].CurrentRegion.Columns.Count ‘统计工作表中数据区域的列数,并赋值给变量L
For k = 1 To L
Sheets("入库明细").Cells(4, k).Value = ""
Next k ‘依次清除入库资料输入和查询区
MsgBox "清除已完成!", vbOKOnly & vbInformation, "信息提示" ‘提示已经清除完成
End Sub
4. 实现入库查询功能
也就是 在“入库明细”表的单元格区域A3:I4中,当输入“产品名称”和“规格”作为查找条件时,利用VBA可以在数据表中查找出符合该条件的入库登记信息,并将该信息完整地展示在设置的单元格区域A3:I4中。若找出多条符合条件的数据,则会在弹出的信息框中显示符合查询条件的总登记数,并会逐条显示,若查不到符合条件的产品信息,则会弹出相应的提示消息框
Public Sub 入库查询()
Dim k As Long
Dim i As Integer, j As Integer, num As Integer, num1 As Integer
Dim flag As Boolean
Sheets("入库明细").Select 选择“入库信息表”
If Cells(4, 2).Value = "" Then
MsgBox "请输入产品编码进行查询!", vbOKOnly & vbInformation, "信息提示" 提示用户输入产品编码进行查询
Exit Sub
End If
If Cells(4, 6).Value = "" Then
MsgBox "请输入类别进行查询!", vbOKOnly & vbInformation, "信息提示" 提示用户输入类别进行查询 Exit Sub
End If
k = Val(Cells(1, 2).Value) + 7 获取数据表的记录行
i = 8
Do Until i > k
If Cells(i, 2).Value = Cells(4, 2).Value And Cells(i, 6).Value = Cells(4, 6).Value Then 如果找到符合查找条件的产品信息,则统计符合条件的信息个数
flag = True
num = num + 1
End If
i = i + 1 循环查找与产品编码和类别相同的记录行数
Loop
For i = 7 To k
If Cells(i, 2).Value = Cells(4, 2).Value And Cells(i, 6).Value = Cells(4, 6).Value Then 如果找到符合查找条件的产品信息
For j = 1 To 9
Cells(4, j).Value = Cells(i, j).Value 将找到的记录信息返回到第4行单元格中
Next j
num1 = num1 + 1
If num1 = num Then 如果是最后一条符合查找条件的产品信息
MsgBox "符合该查找条件的产品信息已经查询完毕!", vbOKOnly & vbInformation, "信息提示"
Else
MsgBox "已经找到" & num & "条记录,单击【确定】按钮可显示下一条信息!", vbOKOnly & vbInformation, "信息提示"
End If
End If
Next I
If flag = False Then
MsgBox "没有找到符合条件的入库产品信息!" & Chr(10) & "" & Chr(13) & "请核实您要产品编码或类别!", vbOKOnly & vbExclamation, "信息提示"
End If
End Sub
5. 实现切换到出库表功能
指如果想查看其他工作表的数据信息,则需要在当前工作表中设置执行按钮来运行相应的VBA程序,即可切换到目标工作表中。步骤:
Public Sub 切换到出库明细表()
Sheets(“出库明细”).Select 选择“出库明细”工作表
End Sub
6. 实现退出系统功能
步骤:
Public Sub 退出系统()
ActiveWorkbook.Save '保存工作簿
ActiveWorkbook.Close '关闭工作簿
End Sub
到这里,就完成了“入库明细”工作表中各功能按钮的设计操作
二、 实现出库明细表的内部功能
即 当在工作表“出库明细”的单元格区域A4:L4中输入一条产品出库信息时,执行VBA程序可将该条信息存放在数据表的最后一行,并且出库次数也会随之自动更新。若输入的出库信息不完整,则会弹出相应的提示消息框。步骤:
Public Sub 出库明细()
Dim i As Long
Dim j As Integer
Sheets("出库明细").Select '选择工作表“出库明细”
If Cells(4, 1).Value = "" Then
MsgBox "请输入出库单号!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 2).Value = "" Then
MsgBox "请输入产品编码!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 3).Value = "" Then
MsgBox "请输入产品名称!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 4).Value = "" Then
MsgBox "请输入规格!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 5).Value = "" Then
MsgBox "请输入单位!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 6).Value = "" Then
MsgBox "请输入类别!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 7).Value = "" Then
MsgBox "请输入成本单价!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 8).Value = "" Then
MsgBox "请输入数量!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 9).Value = "" Then
MsgBox "请输入销售单价!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 10).Value = "" Then
MsgBox "请输入销售日期!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 11).Value = "" Then
MsgBox "请输入客户!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
If Cells(4, 12).Value = "" Then
MsgBox "请输入业务员!", vbOKOnly & vbExclamation, "信息提示"
Exit Sub
End If
i = Val(Sheets("出库明细").Cells(1, 2).Value)
For j = 1 To i
Cells(i + 8, j).Value = Cells(4, j).Value
Next
End Sub
End Sub
实现产品出库查询功能:
在单元格区域A3:L4中,当输入“产品编码”和“类别”作为查询条件时,利用VBA程序可以在数据表中查找出符合该查找条件的出库登记信息,并将该信息完整地显示在设置的单元格区域A3:L4中。若查出多条符合条件的出库登记信息,则该程序会在弹出的消息框中显示符合该查找条件的总登记数,并会逐条显示,若未查到符合条件的记录,则弹出相应的消息提示框。步骤:
Public Sub 出库查询()
Dim k As Long
Dim i As Integer, j As Integer, num As Integer, num1 As Integer
Dim flag As Boolean
Sheets("出库明细").Select
If Cells(4, 2).Value = "" Then
MsgBox "请输入产品编码进行查询!", vbOKOnly & vbInformation, "信息提示"
Exit Sub
End If
If Cells(4, 6).Value = "" Then
MsgBox "请输入类别进行查询!", vbOKOnly & vbInformation, "信息提示"
Exit Sub
End If
k = Val(Cells(1, 2).Value) + 7 '记录的行数
i = 8 '记录开始的行数号
If Cells(i, 2).Value = Cells(4, 2).Value And Cells(i, 6).Value = Cells(4, 6).Value Then
flag = True
num num + 1 '找到符合条件的信息后,返回符合条件的个数
End If
i = i + 1
Loop
For i = 8 To k
If Cells(i, 2).Value = Cells(4, 2).Value And Cells(i, 6).Value = Cells(4, 6).Value Then
For j = 1 To 12
Cells(4, j).Value = Cells(i, j).Value '将找到的信息返回到第四行单元格里
Next j
num1 = num1 + 1
If num1 = num Then MsgBox "符合该查找条件的出库信息已查询完毕!", vbOKOnly, "信息提示"
Else
MsgBox "已找到" & num & "条记录,单击【确定】按钮可显示下一条信息!", vbOKOnly & vbInformation, "信息提示"
End If
End If
Next i
If flag = False Then
MsgBox "没有找到符合条件的出库信息!", vbOKOnly & vbExclamation, "信息提示"
End If
End Sub
End Sub
(if – Loop, for -- next)
2. 实现清空出库信息功能
即 清空在单元格区域A3:L4中添加的出库产品的信息,出库登记或出库明细查询后需要清空信息,然后再进行下一步工作。设置此功能可以一键清除。步骤:
Public Sub 出库查询()
Dim i As Integer
Dim j As Integer
j = Sheets("出库明细").[A3].CurrentRegion.Columns.Count '统计工作表中的数据区域的列数
For i = 1 To j
Sheets("出库明细").Cells(4, i).Value = ""
Next i
End Sub
3. 实现切换到入库表功能
步骤:
Public Sub 切换到入库信息表()
Sheets("入库明细").Select
End Sub
4. 实现退出系统功能
步骤:
Public Sub 退出系统()
ActiveWorkbook.save
ActiveWorkbook.close
End Sub
5. 设计查询系统界面
在完成产品出入库管理系统内部功能的相关设计后,为了统一管理,防止信息泄露,接下来使用窗体为其制作一个访问界面,并利用VBA程序代码对进入该系统的用户进行口令控制。步骤:
Private Sub CommandButton1_Click()
If TextBox1.Text = "xiaobaihuazhuangpin" And TextBox2.Text = "123456" Then '验证用户名和登录密码
Sheets("入库明细").Select
查询系统.Hide '隐藏该用户窗体
Exit Sub
Else
MsgBox "请输入正确的用户名和登录密码!", vbOKOnly & vbInformation, "提示"
End If
End Sub
End Sub
Private Sub CommandButton2_Click()
If TextBox1.Text = "xiaobaihuazhuangpin" And TextBox2.Text = "123456" Then '验证用户名和登录密码
Sheets("出库明细").Select
Else
MsgBox "请输入正确的用户名和登录密码!", vbOKOnly & vbInformation, "提示"
End If
End Sub
Private Sub CommandButton3_Click()
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode <> 1 Then '禁用用户窗体标题栏中的【关闭】按钮
Cancle = True
End If
End Sub
开发工具—visualbasic--【工程资源管理器】--双击ThisWorkbook,进入其代码编辑窗口—在【对象】下拉列表框中选择【Workbook】,此时系统将自动在该代码窗口中添加一个Workbook_Open事件处理程序的代码框架—输入代码:
Private Sub Workbook_Open()
Sheets("Sheet3").Select
查询系统.Show '调出创建的窗体
End Sub