ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: shengdingb

[求助] 一个办公用品出入库登记表,内详更新中,18楼最后一个问题求帮。

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-7 12:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zhaogang1960 发表于 2014-2-7 00:41
请测试附件

  • Private Sub CommandButton1_Click()
  •   Unload UserForm1
  • End Sub


把这段改成了下面这样
  1. Private Sub CommandButton1_Click()
  2. Sheets(2).Select
  3. Dim L As Long
  4. L = Range("A65536").End(xlUp).Row + 1
  5. Cells(L, 1).Value = ComboBox1.Value
  6. Cells(L, 2).Value = ComboBox2.Value
  7. Cells(L, 4).Value = "出库"
  8. Cells(L, 5).Value = ComboBox3.Value
  9. Cells(L, 6).Value = ComboBox4.Value
  10. Cells(L, 7).Value = TextBox6.Value
  11. Cells(L, 8).Value = TextBox7.Value
  12. End Sub
复制代码
360截图20140207123429207.jpg
这里是这个:Cells(L, 5).Value = ComboBox3.Value
在这“出库登记” 里的 “数量” 输入数字后,根据我上面的代码点击“确定出库”在sheet2里录入数据,如何改动能使录入出库数量时 在数字前加上负号。
并且 点击“确定出库”后“出库登记”内填的数据清空,保留在目录页面不显示sheet2页面。
附件: 出入库统计表-录入数据-复合联动.zip (38.49 KB, 下载次数: 67)    2014年2月7日12:47

TA的精华主题

TA的得分主题

发表于 2014-2-7 12:57 | 显示全部楼层
shengdingb 发表于 2014-2-7 12:47
  • Private Sub CommandButton1_Click()
  •   Unload UserForm1
  • End Sub
    1. Private Sub ComboBox1_Change()
    2.     ComboBox2.Clear
    3.     ComboBox3.Clear
    4.     ComboBox4.Clear
    5.     If ComboBox1.ListIndex = -1 Then Exit Sub'修改一下顺序
    6.     ComboBox2.List = Split(d(ComboBox1.Value), ",")
    7. End Sub
    复制代码
    1. Private Sub CommandButton1_Click()
    2.     Dim L As Long
    3.     With Sheets("出入库记录")
    4.         L = .Range("A65536").End(xlUp).Row + 1
    5.         .Cells(L, 1).Value = ComboBox1.Value
    6.         .Cells(L, 2).Value = ComboBox2.Value
    7.         .Cells(L, 4).Value = "出库"
    8.         .Cells(L, 5).Value = ComboBox3.Value * (-1)
    9.         .Cells(L, 6).Value = ComboBox4.Value
    10.         .Cells(L, 7).Value = TextBox6.Value
    11.         .Cells(L, 8).Value = TextBox7.Value
    12.     End With
    13.     ComboBox1.ListIndex = -1
    14.     TextBox6.Text = ""
    15.     TextBox7.Text = ""
    16. End Sub
    复制代码

    TA的精华主题

    TA的得分主题

    发表于 2014-2-7 12:58 | 显示全部楼层
    请测试附件
    出入库统计表-录入数据-复合联动.rar (33.22 KB, 下载次数: 143)

    TA的精华主题

    TA的得分主题

     楼主| 发表于 2014-2-7 13:24 | 显示全部楼层
    zhaogang1960 发表于 2014-2-7 12:58
    请测试附件

    360截图20140207131622364.jpg
    1“出库登记”中点击“确定出库”后,数量不会清空。
    2再加一个必须6格都填完整才能录入,不然点击“确定出库”后弹框提示“请填写完整”。

    3还有有没有办法让“出库登记”里面的 名称 型号 的复合框不能自由填写,只能选择。

    今天最后3个,麻烦了。下午研究下你的代码,把入库登记 弄好。附件还是13楼的。

    TA的精华主题

    TA的得分主题

    发表于 2014-2-7 15:31 | 显示全部楼层
    shengdingb 发表于 2014-2-7 13:24
    1“出库登记”中点击“确定出库”后,数量不会清空。
    2再加一个必须6格都填完整才能录入,不然点击“确 ...
    1. Private Sub CommandButton1_Click()
    2.     Dim L As Long, i As Long
    3.     For i = 1 To 4
    4.         If Me.Controls("ComboBox" & i).Value = "" Then
    5.             MsgBox "请填写完整"
    6.             Exit Sub
    7.         End If
    8.     Next
    9.     For i = 6 To 7
    10.         If Me.Controls("TextBox" & i).Text = "" Then
    11.             MsgBox "请填写完整"
    12.             Exit Sub
    13.         End If
    14.     Next
    15.     With Sheets("出入库记录")
    16.         L = .Range("A65536").End(xlUp).Row + 1
    17.         .Cells(L, 1).Value = ComboBox1.Value
    18.         .Cells(L, 2).Value = ComboBox2.Value
    19.         .Cells(L, 4).Value = "出库"
    20.         .Cells(L, 5).Value = ComboBox3.Value * (-1)
    21.         .Cells(L, 6).Value = ComboBox4.Value
    22.         .Cells(L, 7).Value = TextBox6.Value
    23.         .Cells(L, 8).Value = TextBox7.Value
    24.     End With
    25.     For i = 1 To 4
    26.         Me.Controls("ComboBox" & i).Value = ""
    27.     Next
    28.     TextBox6.Text = ""
    29.     TextBox7.Text = ""
    30. End Sub
    复制代码

    TA的精华主题

    TA的得分主题

    发表于 2014-2-7 15:36 | 显示全部楼层
    请看附件
    出入库统计表-录入数据-复合联动.rar (33.95 KB, 下载次数: 77)

    TA的精华主题

    TA的得分主题

    发表于 2014-2-7 15:38 | 显示全部楼层
    第3个问题需要加两句:
    1. Private Sub UserForm_Initialize()
    2.     Dim arr, i&
    3.     Set d = CreateObject("scripting.dictionary")
    4.     arr = Sheet5.Range("a1").CurrentRegion
    5.     For i = 1 To UBound(arr)
    6.         s = arr(i, 1)
    7.         If Not d.Exists(s) Then
    8.             d(s) = arr(i, 2)
    9.         Else
    10.             If InStr("," & d(s) & ",", "," & arr(i, 2) & ",") = 0 Then d(s) = d(s) & "," & arr(i, 2)
    11.         End If
    12.         s = s & vbTab & arr(i, 2)
    13.         If Not d.Exists(s) Then
    14.             d(s) = arr(i, 3)
    15.         Else
    16.             If InStr("," & d(s) & ",", "," & arr(i, 3) & ",") = 0 Then d(s) = d(s) & "," & arr(i, 3)
    17.         End If
    18.         s = s & vbTab & arr(i, 3)
    19.         If Not d.Exists(s) Then
    20.             d(s) = arr(i, 4)
    21.         Else
    22.             If InStr("," & d(s) & ",", "," & arr(i, 4) & ",") = 0 Then d(s) = d(s) & "," & arr(i, 4)
    23.         End If
    24.     Next
    25.     ComboBox1.List = Filter(d.Keys, vbTab, False)
    26.     ComboBox1.Style = fmStyleDropDownList
    27.     ComboBox2.Style = fmStyleDropDownList
    28. End Sub
    复制代码

    TA的精华主题

    TA的得分主题

     楼主| 发表于 2014-2-7 22:43 | 显示全部楼层
    [广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
    zhaogang1960 发表于 2014-2-7 15:36
    请看附件

    大哥真的感谢你了,最后一个问题。库存
    这个是我根据你的代码把入库弄好了
    出入库统计表-录入数据完成.zip (41.74 KB, 下载次数: 231) 里面录入了一些数据,作为写函数是运算之用。感谢。


    “库存”工作表中    能不能直接用函数自动运算:
    “库存” 工作表中把    “出入库记录”工作表中  相同名称、相同型号的 显示为一行,不同的依次往下添加。
    并且在对应的后面用函数计算出“入库总量”和“库存数量”

    入库总量= “出入库记录”工作表 相同名称相同型号的入库数量之和
    库存数量= “出入库记录”工作表 相同名称相同型号的所有数量之和(因为之前添加了负号,所以只要求和就是最终库存了)


    这样只要填写入库 和 出库登记表,库存就自动运算,一目了然。而且以后还有可能用“库存”工作表 来当出库登记中复合框的数据库来用。

    TA的精华主题

    TA的得分主题

     楼主| 发表于 2014-2-7 22:50 | 显示全部楼层
    [广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
    本帖最后由 shengdingb 于 2014-2-8 23:52 编辑

    • Private Sub CommandButton1_Click()
    •     Dim L As Long, i As Long
    •     For i = 1 To 7
    •         If Me.Controls("TextBox" & i).Text = "" Then
    •             MsgBox "请填写完整"
    •             Exit Sub
    •         End If
    •     Next
    •     With Sheets("出入库记录")
    •         L = .Range("A65536").End(xlUp).Row + 1
    •         .Cells(L, 1).Value = TextBox1.Value
    •         .Cells(L, 2).Value = TextBox2.Value
    •         .Cells(L, 3).Value = TextBox3.Value
    •         .Cells(L, 4).Value = "入库"
    •         .Cells(L, 5).Value = TextBox4.Value
    •         .Cells(L, 6).Value = TextBox5.Value
    •         .Cells(L, 7).Value = TextBox6.Value
    •         .Cells(L, 8).Value = TextBox7.Value
    •     End With
    •     For i = 1 To 6
    •         Me.Controls("TextBox" & i).Value = ""
    •     Next
    •     TextBox7.Text = ""
    • End Sub

    这上面代码是我根据你的出库 代码  改的 “入库登记”中“确定入库”按钮的代码。最后5行改成{:soso_e106:}
    •     For i = 1 To 7
    •         Me.Controls("TextBox" & i).Value = ""
    •     Next
    • End Sub



    TA的精华主题

    TA的得分主题

     楼主| 发表于 2014-2-9 00:09 | 显示全部楼层
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    手机版|关于我们|联系我们|ExcelHome

    GMT+8, 2024-12-4 02:03 , Processed in 0.052256 second(s), 8 queries , Gzip On, MemCache On.

    Powered by Discuz! X3.4

    © 1999-2023 Wooffice Inc.

    沪公网安备 31011702000001号 沪ICP备11019229号-2

    本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

    快速回复 返回顶部 返回列表