ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 求老师帮写个VBA代码从多表中选择相同及不同数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-10-14 21:51 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 efttr55dyf 于 2017-10-16 17:02 编辑

      求老师们帮助写个VBA代码  从多表中选择出相同及不同数据  谢谢老师们
分别将表1表一比对选择出相同数据填列在表甲1中,表1中剩余数字则填列在表甲一
分别将表2表二比对选择出相同数据填列在表甲2中,表2中剩余数字则填列在表甲二
其他表要求同理
表甲1-6及表甲一至六中的数据是选择后填列的结果,是本人为便于老师理解而事先写的,写VBA代码时请先自行删除
祥情请见附件.先谢谢帮助    从多表中选择相同及不同数据.rar (8.14 KB, 下载次数: 28)

感谢zxdy 老师全力帮助



TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-15 20:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请帮帮忙吧,谢谢

TA的精华主题

TA的得分主题

发表于 2017-10-15 22:11 | 显示全部楼层
试试:
  1. Sub 对比()
  2.     Set d = CreateObject("Scripting.Dictionary")
  3.     For j = 0 To 5
  4.         Set Rng = Range(Cells(15, 9 * j + 1), Cells(24, 9 * j + 8))
  5.         For Each rg In Rng
  6.             If rg <> "" Then d(rg.Text) = ""
  7.         Next
  8.         m = 1
  9.         n = 1
  10.         Set Rng = Range(Cells(4, 9 * j + 1), Cells(13, 9 * j + 8))
  11.         For Each rg In Rng
  12.             If rg = "" Then Exit For
  13.             If d.exists(rg.Text) Then
  14.                 x = Int((m - 1) / 8)
  15.                 Cells(x + 27, 9 * j + m - 8 * x) = rg
  16.                 m = m + 1
  17.             Else
  18.                 y = Int((n - 1) / 8)
  19.                 Cells(y + 34, 9 * j + n - 8 * y) = rg
  20.                 n = n + 1
  21.             End If
  22.         Next
  23.         d.RemoveAll
  24.     Next
  25.     Set d = Nothing
  26.     Set Rng = Nothing
  27.     MsgBox "对比完毕!"
  28. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2017-10-15 22:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
测试:
从多表中选择相同及不同数据.rar (16.34 KB, 下载次数: 54)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-15 23:33 | 显示全部楼层

哈哈 感谢lzxdy老师的及时雨帮助,这真是难者不会,会者不难,谢谢zxdy老师的辛勤劳作,我先去测试下,万一有什么不解之处恐怕还要来麻烦老师您.

TA的精华主题

TA的得分主题

发表于 2017-10-16 10:46 | 显示全部楼层
本帖最后由 非常谢谢 于 2017-10-16 11:11 编辑
efttr55dyf 发表于 2017-10-15 23:33
哈哈 感谢lzxdy老师的及时雨帮助,这真是难者不会,会者不难,谢谢zxdy老师的辛勤劳作,我先去测试下,万一有 ...


学习学习

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-16 16:10 | 显示全部楼层

lzxdy 老师您好,经过测试表明您的代码完全符合我的请求,按说也不应该再来打扰,可是俺这人有点懒想请您再修正一下代码以达完美,当我填列不同的数据在表1及表一共12表后,为了100%的得到正确且放心的结果,必须手动删除表甲1和表甲一共12张表中数据,然后再进行比对 得出正确结果。这是因为打比表甲1上次选择出10个数据    10个数据已按顺序填列表中   本次如只选择出8个数据(即少于上次选择数据个数)  则本次选择出8个数据只会依次取代前8个数  而保留上次第9和第10个数据,这样的话如果每次不主动删除则结果可能有误,请老师修正一下代码再做一条清除表甲1和表甲一共12张表中数据的命令(老师这个应该能够做到吧?不知有没有这种说法和做法?)
        问题二(lzxdy 老师您好      先说明  此问题是顺便向您请教 如果老师没时间可忽略不管了)一直以来我接触和找到表中的VBA代码 都是完成一事(一事一按扭)就拿您写代码这个表举例(见本次上传附件)如果我还想在本表(Sheet1表中)中完成 另外完全相同的要求(只是表格的区域变动了--其他要求完全不变),在不动原VBA代码的情况下,lzxdy 老师要怎样在原VBA代码结束的最后(也就是下边)重新加上只是区域改变了的VBA代码,完成另外一个任务(同时重做一个按扭),两者工作时做甲不干涉乙,做乙不干涉甲,当然要想给我这种小白说清 老师肯定会很头痛(所以若老师方便 且有空  请按我理解及“胡说”帮我做个结果也就是我一直想要的“模子”给我就可以了。不用给我述说得头痛),虽然我也知道有的代码能同时完成许多问题 且只要一个按扭全搞定,本人别的没有 唯有自知自明   现阶段我的兴趣就是特别想搞清前述“一事一议”各司其则类,小白“胡说七道”一大堆,高手见笑   如能令高手发笑也好  至少您们愈快了  如lzxdy 老师方便请再次指教,谢谢。 请lzxdy 老师修正.rar (16.13 KB, 下载次数: 9)

TA的精华主题

TA的得分主题

发表于 2017-10-16 20:13 | 显示全部楼层
请lzxdy 老师修正.rar (19.08 KB, 下载次数: 20)
解决了第一个问题,第二个问题涉及到代码的通用性,可上传需求附件,具体分析解决。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-17 16:00 | 显示全部楼层
lzxdy 发表于 2017-10-16 20:13
解决了第一个问题,第二个问题涉及到代码的通用性,可上传需求附件,具体分析解决。

lzxdy老师您好 自己有些表我都想达到我第二问目的,只是没人指教也没见过类似模板,所以总是有老虎吃天无从下嘴感,此次请您书写的代码  我正好也有在此表达到二问相同目的,就再请老师您指教一下。谢谢 lzxdy老师指点二问.rar (16.99 KB, 下载次数: 8)       再次赘述一下,我只想得到和学习怎样利用原代码解决实现相同结果性质类似目的,不是想又要老师重新写一个代码来完成了所有的问题
。比如说老师原写代码已经解决左边表中所有问题,现右边表只是区域不同,现在只需把原表代码有用的直接复制或编辑 怎么连接在下面完成右边相同攻能,按扭也再搞一套(我想依此类模板学习来“化瓢”)希望我如此“胡说七道”一通老师能看懂我意思,真的 由于知识水平太浅薄,不知到底该怎样述说,所以请大家觉得可笑之处且请放声大笑----结果  VBA这个魔鬼的宫殿就在笑声中慢慢动摇。

TA的精华主题

TA的得分主题

发表于 2017-10-18 11:24 | 显示全部楼层
efttr55dyf 发表于 2017-10-17 16:00
lzxdy老师您好 自己有些表我都想达到我第二问目的,只是没人指教也没见过类似模板,所以总是有老虎吃天无 ...

表的规律只是横向数量变化,可在代码中设参数如z1,z1代表起、止块,只需要改z1,z2值那可参不同列处理:
lzxdy老师指点二问.rar (17.03 KB, 下载次数: 23)

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-22 02:40 , Processed in 0.045620 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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