ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 怎么自动将查出的重复文字在文档里高亮显示,比如标出黄色底色,请大神帮个忙。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-8-16 10:28 | 显示全部楼层 |阅读模式
问题说明:在BBB文档里已经列出查出的和其他文档重复的文字内容和相应的重复文档名字,现在想实现在AAA文档里自动将这些重复的文字内容标上黄色底色并添加上重复文档名字,请教各位大神怎么实现。
例子:BBB文档第一行“检查石材的品质情况,规格尺寸方正,表面平整光滑     丙文档”  ,能在AAA文档里将“检查石材的品质情况,规格尺寸方正,表面平整光滑”   标上底色,并在后面加上(丙文档)也标上底色。      
QQ截图20190816102652.png

两个文档.rar

895.71 KB, 下载次数: 23

TA的精华主题

TA的得分主题

发表于 2019-8-16 21:27 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
横看竖看左看右看上看下看,怎么看都不是重复的。

TA的精华主题

TA的得分主题

发表于 2019-8-16 21:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
要想自动,得用 VBA。楼主 会用宏吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-17 08:44 | 显示全部楼层
413191246se 发表于 2019-8-16 21:49
要想自动,得用 VBA。楼主 会用宏吗?

会用一些EXCEL的,不知道word的通不通用。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-17 09:45 | 显示全部楼层
duquancai 发表于 2019-8-16 21:27
横看竖看左看右看上看下看,怎么看都不是重复的。

右侧标黄是我想要达到的效果,文字部分是重复的

TA的精华主题

TA的得分主题

发表于 2019-8-17 10:54 | 显示全部楼层
可试试如下代码:
  1. Sub test()
  2.     'AAA文档为活动文档,且BBB文档须已打开
  3.     Dim Btext() As String
  4.     Dim Findtext() As String
  5.     Dim i As Integer
  6.     Dim j As Integer
  7.     Dim n As Integer
  8.    
  9.     Application.ScreenUpdating = False
  10.     Btext = Split(Documents("BBB.docx").Range.Text, Chr(13))
  11.     Application.Options.DefaultHighlightColorIndex = wdYellow
  12.     With ActiveDocument.Content.Find
  13.         .MatchWildcards = True
  14.         .Replacement.Highlight = True
  15.         For i = 0 To UBound(Btext)
  16.             If InStr(Btext(i), vbTab) > 0 Then
  17.                 ReDim Preserve Findtext(1, j)
  18.                 Findtext(0, j) = Split(Btext(i), vbTab)(0)
  19.                 Findtext(1, j) = Mid(Btext(i), Len(Findtext(0, j)) + 2)
  20.                 Do While Right(Findtext(1, j), 1) = vbTab
  21.                     Findtext(1, j) = Mid(Findtext(1, j), 1, Len(Findtext(1, j)) - 1)
  22.                 Loop
  23.                 If InStr(ActiveDocument.Range.Text, Findtext(0, j)) > 0 Then
  24.                     .Execute Findtext:=Findtext(0, j), replacewith:="^&(" & Findtext(1, j) & ")", Replace:=wdReplaceAll
  25.                     n = n + 1
  26.                 End If
  27.                 j = j + 1
  28.             End If
  29.         Next
  30.     End With
  31.     Application.ScreenUpdating = True
  32.     MsgBox "共找到" & n & "条BBB文档中的重复内容。" '并非AAA文档的重复条目
  33. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2019-8-17 14:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
sylun 老师 厉害! 把整个文档当作一个大字符串,这个思路好!整个代码,看得我似懂非懂,懵懵懂懂。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-17 16:42 | 显示全部楼层
sylun 发表于 2019-8-17 10:54
可试试如下代码:

谢谢sylun老师,刚刚看见,我马上试验下。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-17 16:47 | 显示全部楼层
sylun 发表于 2019-8-17 10:54
可试试如下代码:

sylun老师,完全实现我要的功能,太厉害了,请收下我的膝盖。不过代码还没懂,容我慢慢研究下。再次感谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-24 18:25 , Processed in 0.033026 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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