Excel精英培训网

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

[已解决]求一個 檢查重復項的宏

[复制链接]
发表于 2015-7-4 11:31 | 显示全部楼层 |阅读模式
本帖最后由 010203400 于 2015-7-4 13:53 编辑

想要一個宏, 不要公式, 要求: 檢查A列中是否有相同的單元格, 有就提示.
請各位指導.
最佳答案
2015-7-4 11:50
本帖最后由 qh8600 于 2015-7-4 11:54 编辑
  1. Sub demo()
  2.     Dim d, ar, i, n
  3.     Set d = CreateObject("Scripting.Dictionary")
  4.     ar = Range("a1:a" & Cells(Rows.Count, 1).End(3).Row)
  5.     For i = 1 To UBound(ar)
  6.         If ar(i, 1) <> "" Then
  7.             If Not d.Exists(ar(i, 1)) Then
  8.                 d(ar(i, 1)) = ""
  9.             Else
  10.                 n = n + 1
  11.             End If
  12.         End If
  13.     Next
  14.     If n > 0 Then MsgBox "A列有重复"
  15. End Sub
复制代码
这样
发表于 2015-7-4 11:50 | 显示全部楼层    本楼为最佳答案   
本帖最后由 qh8600 于 2015-7-4 11:54 编辑
  1. Sub demo()
  2.     Dim d, ar, i, n
  3.     Set d = CreateObject("Scripting.Dictionary")
  4.     ar = Range("a1:a" & Cells(Rows.Count, 1).End(3).Row)
  5.     For i = 1 To UBound(ar)
  6.         If ar(i, 1) <> "" Then
  7.             If Not d.Exists(ar(i, 1)) Then
  8.                 d(ar(i, 1)) = ""
  9.             Else
  10.                 n = n + 1
  11.             End If
  12.         End If
  13.     Next
  14.     If n > 0 Then MsgBox "A列有重复"
  15. End Sub
复制代码
这样
回复

使用道具 举报

发表于 2015-7-4 13:42 | 显示全部楼层
本帖最后由 thinkersky 于 2015-7-4 13:43 编辑

Public Sub 判断A列有无重复()
With CreateObject("ADODB.connection")
    .Open "Provider=Microsoft.ace.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=NO;';Data Source=" & ThisWorkbook.FullName
        不重复数 = .Execute("select count(*) from (select distinct f1 from  [" & ActiveSheet.Name & "$])")
        所有数量 = .Execute("select count(f1) from  [" & ActiveSheet.Name & "$]")
        If 不重复数.Item(0) < 所有数量.Item(0) Then MsgBox "A列有重复"
    .Close
End With
End Sub
回复

使用道具 举报

 楼主| 发表于 2015-7-4 13:54 | 显示全部楼层
qh8600 发表于 2015-7-4 11:50
这样

這個代碼對于現在的我有點難
我沒看懂, 但測試是可用的, 先留下, 慢慢研究.
感謝.
回复

使用道具 举报

 楼主| 发表于 2015-7-4 13:55 | 显示全部楼层
thinkersky 发表于 2015-7-4 13:42
Public Sub 判断A列有无重复()
With CreateObject("ADODB.connection")
    .Open "Provider=Microsoft.a ...

現在水平有限, 這個我就更看不懂了, 先留下, 慢慢研究.
感謝.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 18:49 , Processed in 0.173189 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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