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