分享好友 站长动态首页 网站导航

VBA学习笔记62: 窗体与控件综合实例

网友发布 2022-10-12 00:52 · 头闻号编程技术

学习资源:《Excel VBA从入门到进阶》第62集 by兰色幻想


窗体的内容已经学习完了,这节试着用前几节窗体的内容来把入库单弄成窗体吧。


2. 出库单号码——点击微调项可以递增或递减文本框的号码,和当号码为输入时不能离开该文本框。

微调按钮的上下幅度通过Smallchange属性设置,然后数值显示用的是SpinDown事件和SpinUp事件。(复习链接↓)

夏西蓝:VBA学习笔记58:选项按钮、复选框、框架、滚动条、微调、图像与多页

不允许离开,则是Exit事件,判断语句,如果号码的文本框值为空,就禁止离开。

① SpinDown事件:点击向下的按钮出库单号码在原来的基础上+1。

Private Sub SpinButton1_SpinDown TextBox2.Text = Format + 1, "000") '点击向下的按钮出库单号码在原来的基础上加1End Sub

② SpinUp事件:点击向上的按钮出库单号码在原来的基础上-1。

Private Sub SpinButton1_SpinUp TextBox2.Text = Format - 1, "000") '点击向上的按钮出库单号码在原来的基础上减1End Sub

③ Exit事件:出库单号码强制输入,否则不允许离开。

Private Sub TextBox2_Exit '出库单号码强制输入,否则不允许离开 If TextBox2.Text = "" Then Cancel = True '取消离开操作 End IfEnd Sub

回车按钮的值是13,用keydown事件判断按钮的值,确认keycode为13后,跳转到价格单页面(1)。

Private Sub TextBox3_KeyDown If KeyCode = 13 Then Me.MultiPage1.Value = 1 End IfEnd Sub

单击打开价格单的话,就是单击事件了。

Private Sub CommandButton3_Click '点击按钮打开单价窗口 Me.MultiPage1.Value = 1End Sub

Sub 添加Treeview数据Dim Nodx As NodeDim arr, d As New DictionaryDim mykey, sr, xTreeView1.ImageList = ImageList1 '从imagelist控件中提取图片arr = Sheets.Range.Range.End.Row)For x = 1 To UBound mykey = arr & "," & arr & "," & arr & "," & arr '把商品所有信息连接起来,后面放在key里存放,以便随时调用 sr = arr & " & ") 价格:" & arr '设置节点显示的内容 If Not d.Exists) Then '如果该顶级节点不存在 d) = "" '添加到字典里,以便下次判断是否存在 Set Nodx = TreeView1.Nodes.Add, arr, 1, 1) '添加顶级节点 Set Nodx = TreeView1.Nodes.Add, tvwChild, mykey, sr, 2, 2) '添加子节点 Nodx.EnsureVisible '打开节点 Else Set Nodx = TreeView1.Nodes.Add, tvwChild, mykey, sr, 2, 2) '添加子节点 End If Next xEnd Sub


6. 当输入数量时,自动计算销售金额。输入完成按回车,可以自动把本条信息导入到下面的listview中,并且焦点转到商品代码框中。

①首先是change事件,输入数量就自动计算金额。

Private Sub TextBox5_Change TextBox7.Value = Val * Val '输入数量时自动计算金额End Sub

②输入完成,按回车,把数据导入listview中

Private Sub TextBox5_KeyDownDim lv As ListItem'按回车且文本框数值不为0If KeyCode = 13 And TextBox5 <> "" Then '向listview中框添加记录 With ListView1 Set lv = .ListItems.Add lv.Text = DTPicker1.Value lv.SubItems = TextBox2.Text lv.SubItems = TextBox3.Text lv.SubItems = TextBox4.Text lv.SubItems = TextBox8.Text lv.SubItems = TextBox5.Text lv.SubItems = TextBox6.Text lv.SubItems = TextBox7.Text TextBox5 = "" TextBox3 = "" TextBox3.SetFocus End With End IfEnd Sub


8. 完成整张出库单的输入,点击“输入”按钮,可以把listview中的数据添加到出库表中。出库单号码自动+1,焦点转到商品代码框中。

Private Sub CommandButton1_Click '把listview列表中的数据输出到工作表中Dim arrDim icount As Integer, y As Integer, xicount = ListView1.ListItems.Count 'ListItems.Count 返回总行数ReDim arr For x = 1 To icount '把数据导入至数组 arr = ListView1.ListItems.Text '把listview第1列 = ListView1.ListItems.SubItems Next y Next xRange.End.Offset.Resize = arrMe.ListView1.ListItems.Clear '清空listviewTextBox2.Text = Format + 1, "000") '出库单号码+1TextBox3.SetFocusTextBox3 = "" '清空商品代码End Sub


窗体撒花完结,晚安。

免责声明:本平台仅供信息发布交流之途,请谨慎判断信息真伪。如遇虚假诈骗信息,请立即举报

举报
反对 0
打赏 0
更多相关文章

评论

0

收藏

点赞