库管易

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

查看: 9834|回复: 2

使用Excel的VBA代码在表格里查询条码,速度慢怎么办?

[复制链接]
  目前处理货物清点,每本货物有个唯一的条形码,需要通过扫描枪扫描货物条码,然后判断哪本书没找到,数据量相当大,在几万本左右。看到有大神提供的法子是开发了一个功能,功能如下:
  1)支持在一个工作表的任意单元格输入数据;
  2)在录入完成后,Excel自动检查是否存在另一个单元格的内容与所录入内容完全相同;
  3)如存在,则清除当前单元格与所找到单元格的内容;
  4)光标自动定位到所清除的两单元格中 行号小的那一个上,以便继续录入;
  5)如不存在,则什么都不做,就是正常录入了一个单元格数据; 具体公式如下:Private Sub Worksheet_Change代入运行后,发现确实可以做核对而且结果很理想,但是表格运行很缓慢,一般要40来秒才能处理一条,这个比手工操作反而慢了,有没有什么可能简化下这个程序呢?我其实需要的就是大神所说需求的1-3点,之后功能都可以略去。静待论坛大神指点。
  1. (ByVal Target As Range)
  2.     Dim m As Range, str As String
  3.     Application.EnableEvents = False
  4.     str = Target.Text
  5.     If str <> "" Then
  6.         For Each m In Range(Range("A1"), ActiveCell.SpecialCells(xlLastCell))
  7.             If Not (m.Row() = Target.Row() And m.Column() = Target.Column()) And m.Text = str Then
  8.                 m.ClearContents
  9.                 Target.ClearContents
  10.                 If m.Row() < Target.Row() Then m.Select Else Target.Select
  11.                 Exit For
  12.             End If
  13.         Next m
  14.     End If
  15.     Application.EnableEvents = True
  16. End Sub
复制代码
回复

使用道具 举报

用数组+字典操作,不要用单元格
字典处理30万以内的数据,速度还是可以接受的
回复 支持 反对

使用道具 举报

还是没有看明白你的意思,尽量简洁准确说明目的,以前的做法很不可取,用字典和数组很快的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|仓库管理网

GMT+8, 2024-4-20 17:04

Powered by 库管易

KuGuanYi.Com

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