接上次,这次来做入库单和出库单的功能, 首先关于供应商这块的引用问题,当然可以用数据有效性来做,我这次是想用控件来做,首先我们插入一个ActiveX控件里面的,组合框,在sheet3的代码里面写入如下代码 PrivateSub ComboBox1_Change() Sheet3.Range("b2")= ComboBox1.Value End Sub PrivateSub Worksheet_Activate() ComboBox1.Clear a = Sheet2.Range("g65536").End(xlUp).Row For b = 2 To a ComboBox1.AddItem Sheet2.Cells(b, 7) Next End Sub 这样,我们每次要入库的时候就可以根据你基础信息表里的增删来自动提取。 数据录入也采用调用控件的形式,先插入一个列表框,进入属性里面,把columncount改成3,具体数字根据你的基础数据的行数 然后写入代码 Private Sub Worksheet_SelectionChange(ByValTarget As Range) arr = Sheet2.Range("a2:c" &Sheet2.Range("a65536").End(xlUp).Row) If Target.Row >= 4 And Target.Row <= 16And Target.Column = 2 Then ListBox1.List = arr ListBox1.Visible = True ListBox1.Left = ActiveCell(1, 2).Left ListBox1.Top = ActiveCell(1, 2).Top Else ListBox1.Visible = False End If End Sub PrivateSub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) aa =ListBox1.ListIndex ActiveCell = ListBox1.List(aa, 0) ActiveCell.Offset(0, 1) = ListBox1.List(aa, 1) ActiveCell.Offset(0, 2) = ListBox1.List(aa, 2) ActiveCell.Offset(0, -1) = ActiveCell.Row - 3 ListBox1.Visible = False End Sub 上面是入库单的制作,出库单和入库单一样,唯一区别就是引用供应商列和车间列的区别
|