ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 11407|回复: 25

[已解决] 窗体中选择指定两列提取不重复或重复数据到指定列

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-7-5 10:25 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 feiaoli 于 2013-7-6 21:22 编辑

因为工作需要,经常比对差异、重复、不重复名单,所以想制作一个小程序更为简单快捷,但是自己又不会VBA,所以请老师麻烦制作一下VBA

先谢谢各位老师了! 具体如下:

数据列A B 列是不固定的、 输出列C D E 列也不是固定的


窗体中选择指定两列提取差异数据、重复数据或者所有不重复数据到指定列的VBA代码

点击相应的命令按钮提取差异数据、重复数据或者所有不重复数据到指定列!


选择指定两列提取不重复或重复数据到指定列.rar (10.16 KB, 下载次数: 157)


选择指定两列提取不重复或重复数据到指定列.png

问题已经解决感谢蓝版 蓝桥玄霜 老师!! 代码在12楼、附件13楼!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-5 11:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我确实不是拿来主义、是真的不会VBA。请老师多多费心!!!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-5 14:43 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-7-5 14:46 | 显示全部楼层
  1. Private Sub CommandButton1_Click()
  2. Dim Arr1, Arr2, i&, Myr&, l1, l2, scl3, d
  3. Set d = CreateObject("Scripting.Dictionary")
  4. l1 = TextBox1.Text
  5. l2 = TextBox2.Text
  6. scl3 = TextBox3.Text
  7. Cells(2, scl3).Resize(500, 1).ClearContents
  8. Myr = Cells(65536, l1).End(xlUp).Row
  9. Arr1 = Cells(2, l1).Resize(Myr - 1)
  10. Myr = Cells(65536, l2).End(xlUp).Row
  11. Arr2 = Cells(2, l2).Resize(Myr - 1)
  12. For i = 1 To UBound(Arr1)
  13.     d(Arr1(i, 1)) = ""
  14. Next
  15. n = 1
  16. Select Case scl3
  17.     Case "C", "c"
  18.         For i = 1 To UBound(Arr2)
  19.             If Not d.exists(Arr2(i, 1)) Then
  20.                 n = n + 1
  21.                 Cells(n, scl3) = Arr2(i, 1)
  22.             End If
  23.         Next
  24.         Cells(1, scl3) = "差异列"
  25.     Case "D", "d"
  26.         For i = 1 To UBound(Arr2)
  27.             If d.exists(Arr2(i, 1)) Then
  28.                 n = n + 1
  29.                 Cells(n, scl3) = Arr2(i, 1)
  30.             End If
  31.         Next
  32.         Cells(1, scl3) = "重复列"
  33.     Case "E", "e"
  34.         For i = 1 To UBound(Arr2)
  35.             d(Arr2(i, 1)) = ""
  36.         Next
  37.         Cells(2, scl3).Resize(d.Count, 1) = Application.Transpose(d.keys)
  38.         Cells(1, scl3) = "全部数据"
  39. End Select
  40. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-5 14:46 | 显示全部楼层
老师们怎么啦!!!我觉得都应该做的了的、我真的不会VBA 、我觉得很实用的、只是我不会VBA 也并没有VBA供老师们修改、只求老师们给做一个。对我帮助很大的

TA的精华主题

TA的得分主题

发表于 2013-7-5 14:47 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-5 15:01 | 显示全部楼层
本帖最后由 feiaoli 于 2013-7-5 15:02 编辑
蓝桥玄霜 发表于 2013-7-5 14:47
请见附件。

老师您的代码我可以操作了、但是我想给同科室的其他同事用,函数我也会用,他们对代码一点也不知道、我想按照附件操作给他们、请老师按照附件做一下代码。不同的、相同的、以及整理在一块的三种形式。学生知道很难、请老师费心操心多耽误时间做一下。我再怎么搜也找不到这么全的答案。求老师了、您费心了!
我知道老师您一定可以做到的、耽误老师您时间了!!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-5 15:27 | 显示全部楼层
蓝桥玄霜 发表于 2013-7-5 14:47
请见附件。

老师或许我理解错误、窗口的命令是不同的对比两列的数据的情况

TA的精华主题

TA的得分主题

发表于 2013-7-5 16:59 | 显示全部楼层
你的意思是要用3个按钮?输出列不一定在CDE列?
自己不懂VBA,还要教同事?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-6 08:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
蓝桥玄霜 发表于 2013-7-5 16:59
你的意思是要用3个按钮?输出列不一定在CDE列?
自己不懂VBA,还要教同事?

需要提取的数据列也不一定在AB列、输出列也不一定在CDE列是在窗口中选择的。
我是想请老师做这么一个小程序,方便工作中使用,请老师费心、、、、、
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 22:57 , Processed in 0.047610 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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