新大榭论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

《新大榭》- 创大榭地方网络社区先锋品牌 新大榭始终专注于地方网络社区平台的建设 关于我们- [大记事]- 留言建议- [新手报道]

发布 .新大榭软件管家(Excel版) V6.0版 财务/仓库/生产/销售/采购/行政/人事/校园 .公告 - 客户 - 打赏 - 职场 - Excel - Python.

新大榭镜像-音乐-法律-图书-高中课堂-实验 广告是为了能更好的发展 [欢迎商家支持本站互利共赢] 广告位招租.首页黄金广告位等您来!联系 13566035181

查看: 874|回复: 0

[Excel课程] 不重复值的录入

[复制链接]
发表于 2020-4-6 09:55:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转新大榭论坛!

您需要 登录 才可以下载或查看,没有账号?注册

x
在工作表中录入数据时,有时希望能限制重复值的录入,比如在示例的A列单元格只能录入唯一的人员编号,此时可以利用工作表的Change事件结合工作表的CountIf 函数来判断所录入的人员编号是否重复,示例代码如下。
  1. Private Sub Worksheet_Change(ByVal Target As Range)
    8 T  X* T$ {# m# S: F
  2.      With Target4 |+ ]9 A$ `! e2 z  g- e- G
  3.         If .Column <> 1 Or .Count > 1 Then Exit Sub
    ; `* _' _8 X" s! g) ]' U2 }% |+ j: e
  4.         If Application.CountIf(Range("A:A"), .Value) > 1 Then, T4 k  X1 i5 ~2 A
  5.             .Select
    2 ?5 u0 L4 k! n- }8 {
  6.              MsgBox "不能输入重复的人员编号!", 64
    ; ^9 K8 U! u: y. w. A
  7.              Application.EnableEvents = False
    ( T. s0 t- C0 u; X% b0 }
  8.             .Value = ""
    , k) A9 K+ h. d0 |% n
  9.             Application.EnableEvents = True6 Q' I/ _( N+ u" q; }  f6 t# y
  10.         End If% Z0 S0 {! @$ `9 ^
  11.     End With, }4 B" r- t3 l: h$ B
  12. End Sub
复制代码
  U, R  r, ?- D& N7 O
代码解析
工作表的Change事件过程,使A列单元格只能录入唯一的人员编号。
第4行代码使用工作表的CountIf 函数来判断在A列单元格输入的人员编号是否重复。
工作表的CountIf 函数计算区域中满足给定条件的单元格的个数,语法如下:
COUNTIF(range, criteria)
参数range为需要计算其中满足条件的单元格数目的单元格区域。
参数criteria为确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式、单元格引用或文本。
在示例中以所录入的人员编号与A列单元格区域进行比较,如果CountIf 函数的返回值大于1,说明录入的是重复编号。
第5行代码,重新选择该单元格便于下一步清空后重新录入。
第7、8、9行代码,清除录入的重复编号,在清除前将Application对象的EnableEvents属性设置为False,禁用事件。因为如果不禁用事件,那么在清除重复值的过程中会不断地触发工作表的Change事件,从而造成代码运行的死循环。
经过以上的设置,在工作表的A列中只能录入唯一的人员编号,如果录入重复值会进行提示,如图155&#8209;1所示,点击确定后自动清除录入的重复编号。
1.jpg
5 L& d" r% J, R2 T! p
新大榭Python学习社区培训、Excel业务指导、办公软件定制、网站建设;新大榭探索实验室欢迎您!http://lab.daxie.net.cn/
Q群推荐 大榭本地求职招聘QQ群,欢迎转发分享本地招聘信息资讯! 官方招聘1群(已满);官方招聘2群:315816937 *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

文字版|小黑屋|新大榭 ( 浙ICP备16018253号-1 )|点击这里给站长发消息|

GMT+8, 2026-4-13 11:07 , Processed in 0.082041 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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