Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2637|回复: 6

[已解决]自动判断两列之间数据是否匹配

[复制链接]
发表于 2015-11-8 11:08 | 显示全部楼层 |阅读模式
老师好,我想将当前的宏修改成用户在“装盒的打标号”里一录入数据就运行宏,判断他们数据是否录入正确。另外一个问题是“错误标号”能否直接显示“不一致”在错误行的旁边并标红,不将其筛选在错误标号列里头。如图示。

模板new.zip (28.05 KB, 下载次数: 8)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-11-8 12:36 | 显示全部楼层
既然都写代码了,逻辑还那么混乱啊
回复

使用道具 举报

 楼主| 发表于 2015-11-8 14:38 | 显示全部楼层
qh8600 发表于 2015-11-8 12:36
既然都写代码了,逻辑还那么混乱啊

......
回复

使用道具 举报

 楼主| 发表于 2015-11-8 17:28 | 显示全部楼层
不是吧,论坛没有人?
回复

使用道具 举报

发表于 2015-11-9 10:28 | 显示全部楼层    本楼为最佳答案   
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     If Target.Column <> 3 Then Exit Sub
  3.     If Target.Count > 1 Then Exit Sub
  4.     r = Target.Row
  5.     If r = 1 Then Exit Sub
  6.     arr = Range("b1:b" & [B65536].End(xlUp).Row)
  7.     Set d = CreateObject("scripting.dictionary")
  8.     For i = 2 To UBound(arr)
  9.         If Len(arr(i, 1)) Then d(arr(i, 1)) = ""
  10.     Next
  11.     x = Target.Value
  12.     If Len(x) = 0 Or d.exists(x) Then
  13.         Cells(r, 1).Resize(1, 4).Interior.ColorIndex = 0
  14.         Cells(r, 4) = ""
  15.     Else
  16.         Union(Target.Offset(, -2), Target.Offset(, 1)).Interior.ColorIndex = 3
  17.         Cells(r, 4) = "不一致"
  18.     End If
  19. End Sub
复制代码
回复

使用道具 举报

发表于 2015-11-9 10:29 | 显示全部楼层
请看附件。按钮的代码也重写了一下,供检查用。

模板new.rar

25.55 KB, 下载次数: 14

回复

使用道具 举报

 楼主| 发表于 2015-12-2 18:54 | 显示全部楼层
本帖最后由 labrookie 于 2015-12-2 19:01 编辑
grf1973 发表于 2015-11-9 10:28

老师,你好,如果我不是手动录入,而是大批量复制黏贴进来,它需要点一个个单元格才生效,有没有办法做到复制黏贴上去也能自动激活change事件
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 16:16 , Processed in 0.517365 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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