ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5597|回复: 30

[求助] 求助做一个简单的excel盘点扫描表格

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-6-13 12:47 | 显示全部楼层 |阅读模式
要求: 1.  点开excel表,不自动弹出输入扫描条码对话框。点击“条码扫入”按钮后,才弹出对话框;
          2.  扫入条码后,自动在不同的excel表中(不限定附件中那几个表,后续可能会增加或减少表),寻找一模一样的,并在后面第三列商品数量栏中,数量自动+1,扫到相同的条码时,再+1;
          3.  录入条码的对话框可随时关闭,需要时再次点击“条码扫入”可继续扫描录入。

不胜感激!

期初商品信息.zip

331.29 KB, 下载次数: 24

TA的精华主题

TA的得分主题

发表于 2019-6-13 13:19 | 显示全部楼层
这思路有点耗费时间啊,要一个个表去搜索+锁定+计算

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-13 13:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
约定的童话 发表于 2019-6-13 13:19
这思路有点耗费时间啊,要一个个表去搜索+锁定+计算

可能我比较理想化了
我原本的想法是,新建一个excel薄,然后把所有商品扫描一次,通过数据透视表汇总不同条码和求和数量。最后复制到这个附件模板中。只是这样有点复杂,想偷点懒,通过VBA一键搞定

TA的精华主题

TA的得分主题

发表于 2019-6-13 13:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
先把所有工作表内的信息以商品代码为key装入字典(作为公共变量,仅在打开窗体时赋值一次),item为位置(sheet\range),然后每次扫描后就不用找了,字典会搞定所有事情。

TA的精华主题

TA的得分主题

发表于 2019-6-13 13:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
解决问题的思路很重要,照理说,你应该有每个产品的数据,盘点只要扫码得到的数据跟你的库存去对比得到差异的结果才对!我之前发过一个微博就是关于扫码发货一个程序,你可以参考一下,地址如下:
https://m.weibo.cn/u/5522851459? ... eaturecode=20000180

TA的精华主题

TA的得分主题

发表于 2019-6-13 13:33 | 显示全部楼层
大灰狼1976 发表于 2019-6-13 13:30
先把所有工作表内的信息以商品代码为key装入字典(作为公共变量,仅在打开窗体时赋值一次),item为位置(s ...

坐等大师出手学习下!

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-13 13:39 | 显示全部楼层
大灰狼1976 发表于 2019-6-13 13:30
先把所有工作表内的信息以商品代码为key装入字典(作为公共变量,仅在打开窗体时赋值一次),item为位置(s ...

刚去查了下字典,才知道这个东东。
VBA我才刚入门,求大神赐教

TA的精华主题

TA的得分主题

发表于 2019-6-13 13:50 | 显示全部楼层
这么简单的程序让你描述的这么复杂,我两分钟就搞定了,亲测可以用,而且比你想的还要方便。


Sub Woshinibaba()
Application.EnableEvents = True   '允许触发连锁事件
End Sub

Private Sub CommandButton1_Click()
Application.EnableEvents = True   '允许触发连锁事件
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$1" Then
        Exit Sub
    Else
        Dim Arr
        Dim Sous
        Dim Hangh
        Dim Jieg
        Jieg = 0
        Sous = Range("A1")
        For i = 1 To Sheets.Count
            If Sheets(i).Name <> "Sheet2" Then
                Arr = Sheets(i).UsedRange
                Hangh = Sheets(i).Range("a65536").End(xlUp).Row
                For j = 2 To Hangh
                    If Arr(j, 1) = Sous Then
                        Sheets(i).Cells(j, 3) = Arr(j, 3) + 1
                        Jieg = 1
                        GoTo chaxunjieguo
                    End If
                Next
            End If
        Next
    End If
chaxunjieguo:
    If Jieg = 0 Then
        MsgBox ("未找到该商品,请维护基础数据")
    End If
    Application.EnableEvents = False   '允许触发连锁事件
    Target.Value = ""
    Application.EnableEvents = True   '允许触发连锁事件
    Sheets("Sheet2").Activate
    Sheets("Sheet2").Cells(1, 1).Select
End Sub


期初商品信息.rar

338.3 KB, 下载次数: 38

TA的精华主题

TA的得分主题

发表于 2019-6-13 13:51 | 显示全部楼层
大灰狼1976 发表于 2019-6-13 13:30
先把所有工作表内的信息以商品代码为key装入字典(作为公共变量,仅在打开窗体时赋值一次),item为位置(s ...

可以用SQL方法,用join 语句,将多个工作表合并成一个数据源,where 进行查询即可 ,速度快

TA的精华主题

TA的得分主题

发表于 2019-6-13 13:53 | 显示全部楼层
很容易的东西你们都想复杂了,我两分钟就搞定了,而且比你希望的还要好用。
刚才发的好像被审核了,不知道能不能过,再发一次试试

期初商品信息.rar

338.3 KB, 下载次数: 64

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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