Excel精英培训网

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

[已解决]一个去除(重复项目)的问题寻求帮忙!谢谢~!!!

[复制链接]
发表于 2017-9-1 22:26 | 显示全部楼层 |阅读模式
本帖最后由 js5 于 2017-9-1 22:27 编辑

效果说明: 27.jpg
模拟效果:
49.jpg

问题包裹: 去重复查询.rar (12.59 KB, 下载次数: 14)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-9-2 08:53 | 显示全部楼层    本楼为最佳答案   
见附件里面

去重复查询.zip

20.13 KB, 下载次数: 16

回复

使用道具 举报

 楼主| 发表于 2017-9-2 13:32 | 显示全部楼层

老师您好!如从ListView2.ListView3A.ListView3B里面取值,而不是从单元格取值!?

怎么写·!?请老师给个代码!
回复

使用道具 举报

发表于 2017-9-2 14:59 | 显示全部楼层
js5 发表于 2017-9-2 13:32
老师您好!如从ListView2.ListView3A.ListView3B里面取值,而不是从单元格取值!?

怎么写·!?请老 ...
  1. Private Sub CommandButton1_Click()
  2.     Dim arr(1 To 65536, 1 To 3), i&, d As Object, n&
  3.     Dim Lv0 As ListView, Lv1 As ListView, Lv2 As ListView, Lv3 As ListView
  4.     Set d = CreateObject("scripting.dictionary")
  5.     Set Lv0 = UserForm1.ListView1
  6.     Set Lv1 = UserForm1.ListView2
  7.     Set Lv2 = UserForm1.ListView3A
  8.     Set Lv3 = UserForm1.ListView3B
  9.    
  10.     For i = 1 To Lv1.ListItems.Count
  11.         With Lv1
  12.         If Not d.exists(.ListItems(i).Text & "|" & .ListItems(i).SubItems(1) & "|" & .ListItems(i).SubItems(2)) Then
  13.             n = d.Count + 1
  14.             d(.ListItems(i).Text & "|" _
  15.                 & .ListItems(i).SubItems(1) & "|" _
  16.                 & .ListItems(i).SubItems(2)) = n
  17.               arr(n, 1) = .ListItems(i).Text
  18.               arr(n, 2) = .ListItems(i).SubItems(1)
  19.               arr(n, 3) = .ListItems(i).SubItems(2)
  20.           End If
  21.         End With
  22.     Next
  23.     For i = 1 To Lv2.ListItems.Count
  24.         With Lv2
  25.       If Not d.exists(.ListItems(i).Text & "|" & .ListItems(i).SubItems(1) & "|" & .ListItems(i).SubItems(2)) Then
  26.             n = d.Count + 1
  27.             d(.ListItems(i).Text & "|" _
  28.                 & .ListItems(i).SubItems(1) & "|" _
  29.                 & .ListItems(i).SubItems(2)) = n
  30.               arr(n, 1) = .ListItems(i).Text
  31.               arr(n, 2) = .ListItems(i).SubItems(1)
  32.               arr(n, 3) = .ListItems(i).SubItems(2)
  33.           End If
  34.         End With
  35.     Next
  36.     For i = 1 To Lv3.ListItems.Count
  37.         With Lv3
  38.         If Not d.exists(.ListItems(i).Text & "|" & .ListItems(i).SubItems(1) & "|" & .ListItems(i).SubItems(2)) Then
  39.             n = d.Count + 1
  40.             d(.ListItems(i).Text & "|" _
  41.                 & .ListItems(i).SubItems(1) & "|" _
  42.                 & .ListItems(i).SubItems(2)) = n
  43.               arr(n, 1) = .ListItems(i).Text
  44.               arr(n, 2) = .ListItems(i).SubItems(1)
  45.               arr(n, 3) = .ListItems(i).SubItems(2)
  46.           End If
  47.         End With
  48.     Next
  49.     Lv0.ListItems.Clear
  50.     For i = 1 To d.Count
  51.         With Lv0.ListItems.Add()
  52.           .Text = arr(i, 1)
  53.          .SubItems(1) = arr(i, 2)
  54.          .SubItems(2) = arr(i, 3)
  55.         End With
  56.     Next
  57.     d.RemoveAll: Set d = Nothing: Erase arr
  58.     Set Lv0 = Nothing: Set Lv1 = Nothing: Set Lv2 = Nothing: Set Lv3 = Nothing
  59. End Sub
复制代码


回复

使用道具 举报

 楼主| 发表于 2017-9-2 22:18 | 显示全部楼层
回复

使用道具 举报

发表于 2017-9-8 20:30 | 显示全部楼层
学习  谢谢
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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