加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转]office excel vba代码 禁止同列内输入重复数据

(2012-10-09 15:08:22)
标签:

杂谈

分类: 应用备忘

源:http://club.excelhome.net/thread-407365-1-1.html

 

**************  代码开始 *************

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngA As Range
    Dim cntA As Integer
    For Each rngA In Target
        If rngA = "" Then
        Else
            cntA = Application.WorksheetFunction.CountIf(ActiveSheet.Range("A:A"), rngA)'查找的列范围
      If cntA > 1 Then
                MsgBox "重复数据[" & rngA & "]", vbCritical, "错误"
                 rngA=""
            End If
        End If
    Next
End Sub 

**************  代码结束 *************

 

以上VBA过程,对新身份证号码无效!

 

回6楼的,刚发现,您的VBA,对新身份证号无效,不重复的号码也报重复,关键是您用的工作表函数COUNTIF() 对超过15位的数字和文本数字,均认为是重复的。
望6楼的高手再作修改,谢谢!!!

 

用Countif("A:A",A1&"*")=1设置数据有效性就可以了。

 


 
 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有