Excel VBA编程典型实例在窗口中显示记录信息.docx
- 文档编号:2362534
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:13
- 大小:108.23KB
Excel VBA编程典型实例在窗口中显示记录信息.docx
《Excel VBA编程典型实例在窗口中显示记录信息.docx》由会员分享,可在线阅读,更多相关《Excel VBA编程典型实例在窗口中显示记录信息.docx(13页珍藏版)》请在冰豆网上搜索。
ExcelVBA编程典型实例在窗口中显示记录信息
ExcelVBA编程典型实例——在窗口中显示记录信息
某大型商店在每次进货后,都会将进货的记录输入到Excel中。
但是,采用手工在工作表中输入的方法非常费时。
这时,可以通过VBE创建用户窗体,并输入实现代码,来代替操作员在工作表中的直接输入。
1.练习要点
●用户窗体
●使用控件及属性设置
●代码
2.操作步骤:
(1)在工作表Sheet1的单元格A1至H2区域中,输入相应的信息,并设置单元格的格式,如图14-12所示。
图14-12设置工作表Sheet1
(2)在工作表Sheet2的单元格A1至A6区域中,设置单元格格式并输入员工姓名,如图14-13所示。
图14-13设置工作表Sheet2
提示
员工姓名对应操作员和进货人
(3)进入VBE环境,创建用户窗体UserForm1,并向窗体中添加控件,如图14-14所示。
图14-14添加控件
(4)设置用户窗体中控件的Caption属性,并设置流水号框TextBox2的Enabled属性的值为False。
如图14-15所示。
图14-15设置属性
提示
设置窗体中按钮的姓名属性。
按钮【首条】的名称为“cmdFirst”、【上一条】的为“cmdPrev”、【下一条】为“cmdNext”、【末条】为“cmdLast”、【新增】为“cmdAdd”、【保存】为“cmdSave”。
(5)右击窗体,执行【查看代码】命令,打开【代码】编辑窗口。
(6)在左边的列表框中选择“UserForm”对象,在右边的列表框中选择“Initialize”事件,并在该事件中输入代码,如图14-16所示。
图14-16输入代码
代码如下:
'声明公有变量
PublicFlagAsInteger'窗体中显示的当前行
PublictotleRangeAsInteger'工作表的总记录数
'初始化
PrivateSubUserForm_Initialize()
DimiAsInteger
'初始化组合框Psum过程用于统计员工人数
Fori=2ToPsum
ComboBox1.AddItemSheet2.Range("A"+Trim(Str(i)))'填充操作员
ComboBox2.AddItemSheet2.Range("A"+Trim(Str(i)))'填充进货人
Nexti
LoadForm'加载窗体
EndSub
'Psum统计员工人数
FunctionPsum()
DimiAsInteger
i=0
DoWhile1
IfSheet2.Range("A"&Trim(Str(i+1)))=""Then
ExitDo
EndIf
i=i+1
Loop
Psum=i
EndFunction
'加载窗体
SubLoadForm()
'如果工作表sheet1中有数据显示第三行的记录
totleRange=tRange
'如果有记录
IftotleRange>0Then
Flag=3
ViewRange(Flag)'显示记录
EndIf
cmdFirst.Enabled=False
cmdPrev.Enabled=False
cmdNext.Enabled=False
cmdLast.Enabled=False
'当记录大于1条时
IftotleRange>1Then
cmdNext.Enabled=True
cmdLast.Enabled=True
EndIf
'cmdSave.Enabled=False
EndSub
'统计总记录数
FunctiontRange()
DimiAsInteger
i=2
DoWhile1
IfSheet1.Range("A"&Trim(Str(i+1)))=""Then
ExitDo
EndIf
i=i+1
Loop
tRange=i-2
EndFunction
'显示记录到窗体
SubViewRange(iAsInteger)
TextBox1.Text=Sheet1.Range("A"&Trim(Str(i))).Value'日期
ComboBox1.Value=Sheet1.Range("B"&Trim(Str(i))).Value'操作员
TextBox2.Text=Sheet1.Range("C"&Trim(Str(i))).Value'流水号
TextBox3.Text=Sheet1.Range("D"&Trim(Str(i))).Value'产品名称
TextBox4.Text=Sheet1.Range("E"&Trim(Str(i))).Value'数量
TextBox5.Text=Sheet1.Range("F"&Trim(Str(i))).Value'单价
TextBox6.Text=Sheet1.Range("G"&Trim(Str(i))).Value'合计
ComboBox2.Value=Sheet1.Range("H"&Trim(Str(i))).Value'进货人
EndSub
提示
上面的代码段中有四个过程,分别为Psum(统计员工总数)、LoadForm(加载窗体)、tRange(统计工作表中总记录数)、ViewRange(显示记录到窗体)。
(7)在【代码】编辑窗口中,分别为【数量】和【单价】框的Change事件,输入实现代码。
代码如下:
'数量的Change事件
PrivateSubTextBox4_Change()
'数量和单价不为空时,计算“合计”
IfTextBox4.Value<>0AndTextBox5.Value<>0Then
TextBox6.Value=Val(TextBox4.Value)*Val(TextBox5.Value)
EndIf
EndSub
'单价的Change事件
PrivateSubTextBox5_Change()
'数量和单价不为空时,计算“合计”
IfTextBox4.Value<>0AndTextBox5.Value<>0Then
TextBox6.Value=Val(TextBox4.Value)*Val(TextBox5.Value)
EndIf
EndSub
(8)在【代码】编辑窗口中,分别为按钮【首页】、【上一页】、【下一页】、【末页】的Click事件,输入实现代码。
代码如下:
'首条
PrivateSubcmdfirst_Click()
cmdPrev.Enabled=False
cmdFirst.Enabled=False
cmdNext.Enabled=True
cmdLast.Enabled=True
Flag=3
ViewRange(Flag)'显示记录
EndSub
'上一条
PrivateSubcmdPrev_Click()
Flag=Flag-1
IfFlag=3Then
cmdFirst.Enabled=False
cmdPrev.Enabled=False
EndIf
ViewRange(Flag)'显示记录
IfFlag cmdNext.Enabled=True cmdLast.Enabled=True EndIf EndSub '下一条 PrivateSubcmdNext_Click() Flag=Flag+1 ViewRange(Flag)'显示记录 cmdFirst.Enabled=True cmdPrev.Enabled=True '判断是否是最后一行 IfFlag=totleRange+2Then cmdNext.Enabled=False cmdLast.Enabled=False EndIf EndSub '最后一条 PrivateSubcmdLast_Click() Flag=totleRange+2 ViewRange(Flag)'显示记录 cmdFirst.Enabled=True cmdPrev.Enabled=True cmdNext.Enabled=False cmdLast.Enabled=False EndSub 提示 四个按钮用于在窗体中逐条显示记录。 (9)在【代码】编辑窗口中,输入【增加】按钮的Click事件的代码。 代码如下: '新增/取消 PrivateSubcmdAdd_Click() DimiAsInteger clearForm'清空窗体 cmdFirst.Enabled=False cmdPrev.Enabled=False cmdNext.Enabled=False cmdLast.Enabled=False IfcmdAdd.Caption="新增"Then '执行新增操作 cmdAdd.Caption="取消" cmdSave.Enabled=True TextBox1.Value=Date'进货日期 '先读取最大记录,再获取值并计算赋值 IftotleRange=0Then TextBox2.Value=1 Else i=3 '获取最大流水号 DoWhile1 IfSheet1.Range("C"&Trim(Str(i))).Value=""Then ExitDo EndIf i=i+1 Loop TextBox2.Value=Val(Sheet1.Range("C"&Trim(Str(i-1))).Value)+1'流水号 EndIf TextBox4.Value=0 TextBox5.Value=0 TextBox6.Value=0 Else '执行取消操作 cmdAdd.Caption="新增" LoadForm'加载窗体 EndIf EndSub '清空窗体 SubclearForm() TextBox1.Text=""'日期 ComboBox1.Value=""'操作员 TextBox2.Text=""'流水号 TextBox3.Text=""'产品名称 TextBox4.Text=""'数量 TextBox5.Text=""'单价 TextBox6.Text=""'合计 ComboBox2.Value=""'进货人 EndSub 提示 【增加】按钮有两种状态分别为“增加”和“取消”。 单击【增加】状态时,可用于输入一条新
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Excel VBA编程 典型实例在窗口中显示记录信息 VBA 编程 典型 实例 窗口 显示 记录 信息
![提示](https://static.bdocx.com/images/bang_tan.gif)