ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 宏求帮助,多表逐一搜索关键列,对比并标记重复值

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-10-3 23:29 | 显示全部楼层 |阅读模式
本帖最后由 新西兰棋佛 于 2019-10-5 09:22 编辑

1)工作表的名称列在book1工作表“末”的A列,如果某表在book1有而book2没有,跳过就行了,需要检测的表我们都放在末里,有时候会有新项目,book2里一开始肯定搜不到。
2)在book1工作表“一季”的A1:G2区域内搜索关键字“时间”,如果没有搜到,就跳过
3)在“一季”的C列搜到“时间”,记录列号C。
4)逐一用C列里的值,去book2“一季”的“时间”列中对比,如果存在相同值,则标黄。
     也就是说,样板中的情况,应该是给book1,一季,C列存在2018-05-01这一行标黄色。
5)当对比完最后一个数值后。按同样逻辑扫描“二季”
6)重复过程,直到所有工作表都扫描完毕。

没什么VBA知识,今天摸爬了一下,找到一些可以用的代码,目前可以成功检测两个工作簿间的重复值。
但还剩下一些问题,麻烦大家指点,谢谢
  • 我不知道该怎么做循环,“末”中列出的表,每个都要检测一次,但是这个循环怎么做,没思路
  • 如果Book1“末”中的工作表清单再多一项,比如“四季”,而book2里没有四季这个标签,貌似宏运行时会报错?反正,需要搜索的表就列在“末”里,一般都能对上,对不上肯定是新加的项目,所以如果找不到能不能让它跳过,继续扫其他表,别停下来。
  • book2里,同样工作表的时间列通常都能对上,所以可以直接引用book1取到的“列号”。不过偶尔也会动,所以有必要用同样规则在book2确定一次么?虽然没有也可以
  • 主要还是怕它跳错,还有循环怎么开始,怎么让它正确结束,这两个地方我不会做。
  • 做好的部分在附件


Desktop.zip (40.94 KB, 下载次数: 11)

TA的精华主题

TA的得分主题

发表于 2019-10-4 09:09 | 显示全部楼层
你的文件格式不对。

TA的精华主题

TA的得分主题

发表于 2019-10-4 09:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
查找的代码:
2019-10-4查找.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-4 22:59 | 显示全部楼层
liangmutou01 发表于 2019-10-4 09:09
你的文件格式不对。

呃,抱歉我不太明白。就是xlsb 格式,里面做好了部分宏,我这边可以用,excel2016

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-4 23:05 | 显示全部楼层

感谢回复,试了一下不太适用 ,具体原因我也不清楚,总之运行不了。

我今天自己试着做了一下,基本能达到想要的效果。就是不会做循环,还有运行报错的情况不知道怎么处理,也不知道循环是不是正确结束了(资料说如果不做好停止条件,宏会无限循环下去)。
宏在附件里,如果可以能否帮忙看看改进改进,谢谢

TA的精华主题

TA的得分主题

发表于 2019-10-5 07:34 来自手机 | 显示全部楼层
本帖最后由 zpy2 于 2019-10-5 07:50 编辑
新西兰棋佛 发表于 2019-10-4 23:05
感谢回复,试了一下不太适用 ,具体原因我也不清楚,总之运行不了。

我今天自己试着做了一下,基本能 ...


具体原因我也不清楚,总之运行不了。
可以上传你的附件,笼统的说 无益问题的解决
你自己做的没有循环?
循环 就是 for ...next,估计每个sub都有,你哪里不会?
你的表,我打不开。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-5 09:25 | 显示全部楼层
zpy2 发表于 2019-10-5 07:34
具体原因我也不清楚,总之运行不了。
可以上传你的附件,笼统的说 无益问题的解决
你自己做的没有循 ...

附件换了,请看一下。代码也单独拿到word里了,如果还不行我换个低版本的excel试试。

具体的,我的扫描重复值部分应该是用到一个循环

主要是扫描多个工作表的部分,不知道怎么表达,循环指令又有好几个,for do 之类的,搞晕了不知道该用哪个。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-5 14:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
又开始摸索了,不知道今天能不能整出

TA的精华主题

TA的得分主题

发表于 2019-10-5 15:40 来自手机 | 显示全部楼层
新西兰棋佛 发表于 2019-10-5 09:25
附件换了,请看一下。代码也单独拿到word里了,如果还不行我换个低版本的excel试试。

具体的,我的扫 ...

现在问题是如何让这个指令在其余工作表里循环,我不太会做循环看看这个
For Each Sht in Sheets


Next

我现在是手机,我看了你Word文档里的代码,应该不是蓝版的,不妨按他的思路看看。那句不懂就F1.
另外,你这个新版我打开了,但是能稍微介绍一下为啥要这样啊。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-5 16:23 | 显示全部楼层
试了
    Dim SheetList As Variant
      SheetList = Array("一季", "二季", "三季")
      
    Dim x As Integer
   
    For x = LBound(SheetList) To UBound(SheetList)

但是不生效,只有第一个表有用。
另外这个也不方便用,因为工作表的数量、名字会变,总不能每次都去换代码。。。。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-19 10:07 , Processed in 0.048520 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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