Word文档内部检索重复内容的VBA程序代码及使用说明

合集下载

利用VBA寻找重复选项

利用VBA寻找重复选项

一、函数1、将公式=IF(ISERROR(VLOOKUP(B2,B$1:B1,1,0)),"","重复") 在数据区域后空白列第二行,光标对准右下角成“+”状时将公式拖(或双击)下去,效果如图:2、=COUNTIF(A:A,A1),大于1 的重复。

二、VBA找出一列或一行中没有的重新列出来,用全部的去循环对比需要排除的。

Sub 测试()Dim rng As Range, rngs As Range, k%, a, b 定义数据类型:设置对range单元格的引用,和定义K为整形变量,a,b为变体变量。

For Each rng In [a2:a6] for each外循环的范围a = rng.ValueFor Each rngs In [b2:b4] for each内循环的范围b = rngs.ValueIf rng = rngs ThenGoTo 100 跳出外循环End IfNext rngsk = k + 1Cells(k + 1, "c") = rng 把没等的内容复制到新的一列中100:Next rngEnd Sub找出重复的并列出次数:Sub 统计()y1 = 1 '开始列为A列(在EXCEL中,A列的列号为1)y2 = 4 '结束列为D列(在EXCEL中,D列的列号为4)x = 2n1 = 255 '辅助列n2 = y2+2 '结果显示列,结果显示在源数据列的右侧,中间间隔一列。

For i = y1 To y2s = Cells(65536, y1).End(xlUp).Row '各列数据的数量Range(Cells(1, i), Cells(s, i)).Copy Cells(x, n1) '把所有数据复制到辅助列中x = x + sNextCells(1, n1) = "数据": Cells(1, n2 + 1) = "次数"'使用“高级筛选”功能将不重复数据显示在“结果显示列”中Columns(n1).AdvancedFilter 2, , Cells(1, n2), 1s1 = Cells(65536, n2).End(xlUp).Row'下面代码用COUNTIF函数统计重复次数For i = 2 To s1Cells(i, n2 + 1) = WorksheetFunction.CountIf(Columns(n1), Cells(i, n2))Next'消除辅助列内容Columns(n1) = ""End SubSub 按指定次数重复数据()Dim Rng, Arr()Dim i As Integer, j As Integer, k As IntegerDim LastRow As Integer, Total As IntegerLastRow = [A65536].End(xlUp).Row '从A列最后一行向上找,找到有数据的行为止Total = Application.WorksheetFunction.Sum(Range("B2:B" & LastRow))Rng = Range("A1:B" & LastRow)ReDim Arr(1 To Total, 1 To 1) '重新定义数组ARR,调整第一维下标从1起到20止,第二维下标从1起到11止For i = 2 To UBound(Rng, 1)For j = 1 To Rng(i, 2)k = k + 1Arr(k, 1) = Rng(i, 1)NextNextRange("D2").Resize(k, 1).Value = ArrEnd Sub1.Sub test()2. Dim ar3. Dim d As Object4. Dim i As Integer, j As Integer5. Set d = CreateObject("scripting.dictionary")6. ar = Range("a1").CurrentRegion7. For j = 1 To 38.For i = 2 To UBound(ar)9.If ar(i, j) <> "" Then10. d(ar(i, j)) = ""11.End If12.Next13. Next14. Range("d2:d65536").Clear15. Range("d2").Resize(d.Count, 1).NumberFormatLocal = "@"16. Range("d2").Resize(d.Count, 1) = Application.Transpose(d.keys)17.End Sub1.Sub Iterance()2.Dim i As Long '定义循环变量i类型为长整型3.For i = 1 To 10 '循环10次4. If Application.CountIf(Range("A1:A10"), Cells(i, 1)) > 1 ThenCells(i, 1).Font.Color = 2555. '从第一个单元格开始循环利用工作表函数Countif如果该单元格的值在A1:A10这个区域中的个数大于了1那么就填充字体颜色为红色6.Next7.End Sub8.9.Sub Iterance1() '录制一个条件格式10. Range("A1:A10").FormatConditions.Add Type:=xlExpression,Formula1:= _11."=COUNTIF($A$1:$A$10,A1)>1"12. Range("A1:A10").FormatConditions(1).Interior.Color = 25513.End Sub最近在网上找到了一些比较好的关于AdvancedFilter应用的例子,总结和分享如下:expression.AdvancedFilter(Action, CriteriaRange, CopyToRange, Unique) expression 必需。

在WORD中如何利用宏程序删除不需要的多处表格形式的重复信息

在WORD中如何利用宏程序删除不需要的多处表格形式的重复信息

在WORD中如何利用宏程序删除不需要的多处表格形式的重复信息1.首先在执行宏程序之前,复制不需要的多处重复信息:更多个人简历网、求职信、面试技巧、职场指南:2.将光标插入文档起始处,打开工具菜单,选择宏命令,录制宏3.选择键盘,4.在键盘上单击CLT+Z,5.单击指定,形成为快捷键,则今后执行CLT+Z时,文档即起动设置好的宏程序,6.执行编辑菜单,查找命令,执行CLT+V粘贴,将不需要的多处重复信息:“更多个人简历网、求职信、面试技巧、职场指南:”,粘贴到查找和替代的文本框中,单击查找下一步,找到并选择“更多个人简历网、求职信、面试技巧、职场指南:”7.执行表格菜单,转换,选择将表格转换为文本8.选择制表符,确定,将表格转换为文本9.执行编辑菜单,查找命令,在查找内容中,输入:“更多个人简历网、求职信、面试技巧、职场指南:”,再单击替换选项卡,替换格为空10.单击替换,再单击一次替换,即删除“更多个人简历网、求职信、面试技巧、职场指南:”11.取消替换命令,执行工具菜单,选择VB编辑器12.选择视图菜单,工程管理器,13.选择Normal,模块,双击New Macros(新宏),打开程序编辑器窗口14.将前两步形成的以下程序,即End Sub以前的部分,进行复制,多次,以便一次可以删除多处“更多个人简历网、求职信、面试技巧、职场指南:”Selection.Find.ClearFormattingWith Selection.Find.Text = "更多个人简历网、求职信、面试技巧、职场指南:".Replacement.Text = "更多个人简历网、求职信、面试技巧、职场指南:".Forward = True.Wrap = wdFindContinue.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.CorrectHangulEndings = False.MatchAllWordForms = False.MatchSoundsLike = False.MatchWildcards = False.MatchFuzzy = FalseEnd WithSelection.Find.ExecuteSelection.Rows.ConvertToText Separator:=wdSeparateByTabs, NestedTables:= _ TrueSelection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = "更多个人简历网、求职信、面试技巧、职场指南:".Replacement.Text = "".Forward = True.Wrap = wdFindAsk.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.CorrectHangulEndings = False.MatchAllWordForms = False.MatchSoundsLike = False.MatchWildcards = False.MatchFuzzy = FalseEnd WithSelection.Find.ExecuteWith SelectionIf .Find.Forward = True Then.Collapse Direction:=wdCollapseStartElse.Collapse Direction:=wdCollapseEndEnd If.Find.Execute Replace:=wdReplaceOneIf .Find.Forward = True Then.Collapse Direction:=wdCollapseEndElse.Collapse Direction:=wdCollapseStartEnd If.Find.ExecuteEnd WithSelection.Rows.ConvertToText Separator:=wdSeparateByTabs, NestedTables:= _ TrueSelection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = "更多个人简历网、求职信、面试技巧、职场指南:".Replacement.Text = "".Forward = True.Wrap = wdFindAsk.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.CorrectHangulEndings = False.MatchAllWordForms = False.MatchSoundsLike = False.MatchWildcards = False.MatchFuzzy = FalseEnd WithSelection.Find.ExecuteWith SelectionIf .Find.Forward = True Then.Collapse Direction:=wdCollapseStartElse.Collapse Direction:=wdCollapseEndEnd If.Find.Execute Replace:=wdReplaceOneIf .Find.Forward = True Then.Collapse Direction:=wdCollapseEndElse.Collapse Direction:=wdCollapseStartEnd If.Find.ExecuteEnd With15.保存16.回到文档中,执行CLT+Z,可见一次可删除多处的“更多个人简历网、求职信、面试技巧、职场指南:”,全部删除后,系统出现结束信息时,单击“结束”回到文档中17.以后需要用到该程序,只要将程序中的“更多个人简历网、求职信、面试技巧、职场指南:”改为其他内容即可。

VBA宏操作Word文档的常用技巧与函数解析

VBA宏操作Word文档的常用技巧与函数解析

VBA宏操作Word文档的常用技巧与函数解析Word文档是办公工作中最常用的工具之一,它提供了丰富的功能和设计选项。

VBA(Visual Basic for Applications)是一种用于自动化任务和增强功能的编程语言,通过使用VBA宏,我们可以进一步扩展和自定义Word文档的功能。

本文将介绍一些VBA宏操作Word文档的常用技巧和函数,帮助您更高效地利用VBA宏完成各种任务。

一、了解VBA宏VBA宏是一种编程语言,可用于创建自定义的Word文档操作和功能。

使用VBA宏,您可以自动执行重复的任务,增加文档的互动性,并提高办公效率。

为了运行VBA宏,您需要在Word文档中打开VBA 编辑器,这样就可以编写和运行VBA代码了。

二、创建宏录制Word提供了宏录制功能,可以根据您在文档中的操作记录VBA宏代码。

这是学习和入门VBA宏的好方法。

1. 打开Word文档,点击"开发工具"选项卡,然后点击"宏"按钮。

2. 在出现的对话框中,输入宏的名称,并点击"创建"按钮。

3. 在宏录制器窗口中,开始执行您想要录制的操作,例如字体样式调整、插入图片、为文本设置格式等。

4. 完成操作后,点击宏录制器窗口中的"停止录制"按钮。

三、常用VBA宏技巧VBA宏提供了许多强大的功能和技巧,以下是一些常用的技巧,可以帮助您更好地利用VBA宏操作Word文档。

1. 循环和条件语句:使用循环和条件语句可以实现自动化任务,比如在文档中查找和替换特定文本。

2. 创建用户界面:通过使用VBA宏,您可以创建自定义的用户界面,以便用户输入参数或执行特定的功能。

3. 处理表格数据:VBA宏可以帮助您处理Word文档中的表格数据,例如自动计算和合并单元格。

4. 控制Word应用程序:使用VBA宏可以控制Word应用程序的各个方面,例如打开、关闭和保存文档,设置页面布局等。

vba字典去除重复项的方法

vba字典去除重复项的方法

vba字典去除重复项的方法在VBA中,可以使用字典对象(Dictionary)来存储键值对,并且可以轻松地去除重复项。

下面是一种简单的方法:1. 首先,声明一个字典对象:```vbaDim dict As ObjectSet dict = CreateObject("")```2. 然后,向字典中添加键值对。

例如,添加一些重复项:```vba"key1", "value1""key2", "value2""key1", "value3" ' 重复项"key3", "value4"```3. 使用一个循环来遍历字典中的所有键,并检查每个键是否已经存在于字典中。

如果不存在,则将其添加到字典中。

这样可以确保字典中没有重复项:```vbaDim key As VariantFor Each key InIf Not (key) Then ' 检查键是否已经存在key, dict(key) ' 如果不存在,则添加键值对End IfNext key```4. 最后,可以使用字典中的键或值来访问数据。

例如,遍历字典中的所有键和值:```vbaDim key As VariantDim value As VariantFor Each key Invalue = dict(key)key & ": " & value ' 输出键和值Next key```通过以上步骤,你可以在VBA中使用字典对象来存储键值对,并轻松地去除重复项。

vba批量查找替换文档内容的方法

vba批量查找替换文档内容的方法

vba批量查找替换文档内容的方法VBA批量查找替换文档内容的方法1. 引言在处理大量文档的时候,有时候我们需要对文档中的某个特定内容进行批量查找和替换。

VBA(Visual Basic for Applications)是一种强大的编程语言,可以用于自动化处理Office文档。

本文将介绍一些使用VBA进行批量查找替换文档内容的方法。

2. 使用Find和Replace方法VBA中的Range对象具有Find和Replace方法,可以用于查找和替换文档内容。

使用Find方法查找内容通过以下代码可以使用Find方法查找文档中的某个特定内容:Sub FindContent()Dim rng As RangeSet rng =With.Text = "要查找的内容".Forward = True.Wrap = wdFindStop.ExecuteEnd WithEnd Sub在代码中,我们首先将要查找的范围设置为整个文档的内容。

接着使用Find方法查找文档中的”要查找的内容”。

使用Replace方法替换内容通过以下代码可以使用Replace方法替换文档中的某个特定内容:Sub ReplaceContent()Dim rng As RangeSet rng =With.Text = "要查找的内容". = "要替换的内容".Forward = True.Wrap = wdFindContinue.Execute Replace:=wdReplaceAllEnd WithEnd Sub在代码中,我们首先将要替换的范围设置为整个文档的内容。

接着使用Replace方法替换文档中的”要查找的内容”为”要替换的内容”。

3. 使用正则表达式查找和替换VBA中的RegExp对象可以使用正则表达式进行更加灵活的查找和替换。

引入正则表达式库在使用正则表达式之前,需要引入正则表达式库。

Word文档内部检索重复内容的VBA程序代码及使用说明

Word文档内部检索重复内容的VBA程序代码及使用说明

Word⽂档内部检索重复内容的VBA程序代码及使⽤说明引⾔:现在信息量极⼤丰富,计算机的使⽤带来了很多的⽅便。

但同时,在整理各种资料、撰写综述性⽂章、申请书、毕业论⽂等等情况下,特别是涉及到长⽂档的时候,往往会出现内容的重复出现。

通常,这种重复是允许出现的,但是从⽂档质量来说,重复的内容在不同位置出现时,最好能够做⼀个变通——类似的意思,换⼀种说法,⼈们读起来会流畅的多。

可是很多⼈的习惯上是⼤量使⽤了Copy和Paste,会使读者感觉不太舒服,如果是评审⼈看到的话,往往就会⾏使其⼿中的权⼒——Pass了另外⼀个困扰就是参考⽂献的重复出现问题。

虽然使⽤EndNote等类似的⽂献管理软件⾮常⽅便,也可以解决这个问题。

但我想⼤部分⽤户可能不太会⽤,或者不习惯使⽤,这从我⾝边的同事、同学、学⽣可以知道。

因此,找到⼀些简单的⼿段解决这些问题⾮常重要。

我从⽹上到处去找这样的⼩程序,发现了利⽤Word宏功能实现的两段内容,挺不错的。

经过实验能够使⽤,现在演⽰⼀下,并加以详细的解释说明,⽅便更多的⼈使⽤。

说明:使⽤者要能够熟练使⽤word,稍微懂⼀点Visual Basic语⾔,当然完全不懂也没有太⼤关系,只要按照下⾯做就可以,只是如果懂⼀点的话,更容易看懂代码,并且可以进⾏⼀些改造,使其更适合个⼈使⽤。

我⽤来验证的系统为Win7旗舰版和Word2003。

操作演⽰:启动Word2003,如果宏安全性⾼的话,⽆法使⽤宏功能,要进⾏设置“⼯具”——“宏”——“安全性”——“中”或“低”,再重新启动Word2003即可。

进⼊“⼯具”——“宏”——“Visual Basic 编辑器”(或者使⽤快捷键Alt+F11直接进⼊),出现这个界⾯:在Normal处,右键,菜单中,增加模块,将如下实例的代码直接复制到右边的代码区即可。

当然在Project⾥⾯如此操作也可以,但是只能对你要处理的⽂档有效,⽽在Normal中则保存为通⽤的功能了。

批量查找替换多个word文档中的相关内容

批量查找替换多个word文档中的相关内容

批量查找替换多个word文档中的相关内容当你需要汇总技术报告时,可能会遇到一个头痛的问题:一个报告有多个专业,分为多个单独的Word章节报告。

上游专业提供了一些数据,下游专业则跟着复制粘贴。

当上游专业修改数据后,下游专业没有更改,错误就这样一直传递下去。

这时你需要打开每个Word文件去查找替换,既费时,又费力,还容易出错。

但是,我们有一个解决办法。

编写高效办公的VBA代码,将其粘贴进Word,然后就可以一键批量修改。

以下是相关代码:Sub在多个文档内批量查找替换()此代码功能旨在查找多个文档中的某些、某个字符XXX '关闭屏幕更新Dim MyDialog As FileDialog。

oDoc As Document。

oSecAs nDim oFile As Variant。

myRange As RangeDim a。

n。

i As IntegerOn Error Resume NextXXX '关闭屏幕更新a = InputBox("请输入要查找的文本!"。

"请输入")b = InputBox("请输入要替换的文本!"。

"请输入")定义一个文件夹选取对话框XXX(msoFileDialogFilePicker)With MyDialogFilters.Clear'清除所有文件筛选器中的项目XXX "所有WORD文件"。

"*.doc*"。

1'增加筛选器的项目为所有WORD文件AllowMultiSelect = True'允许多项选择If。

Show = -1 Then'确定For XXX'在所有选取项目中循环执行查找替换操作XXX(oFile)For Each XXXXXXWith myRange.FindClearFormattingText = aXXX bExecute Replace:=wdReplaceAllEnd WithNext oSecXXX:=TrueNext oFileEnd IfEnd WithXXX '打开屏幕更新End Sub步骤如下:1.输入需要替换掉的文本;2.输入替换后的文本;3.选择所有需要查找的Word文件。

Word VBA应用程序在处理文档未知重复内容中的应用

Word VBA应用程序在处理文档未知重复内容中的应用
S W R EEOM N N EI 0 AEDVIPET D S N A D G
软 件 开发 与 设 计
WodV A应 用程 序 在 处理 文 档 未 知重 复 内容 中的应 用 r B
王殿 佑
( 京控 制 T 程研 究 所 ,北 京 10 9 ) 北 0 10 摘 要 : 应 用 V A程 序 实现 了 Wod文 档 中 未知 重 复 内容 的 自动 查 找 和标 定 ,扩展 了和 实现 Wod中 h t xe d ef n t n o e rh a d r p a e i o d a d h s b e r v d o s f l n rc ia . e rh a d i i ae T a tn st u ci fs a c n e lc n w r n a e n p o e f eu d p a t 1 n e h o u a c Ke r s y wo d :W o dVB ; c o u k o nd p iaec ne t s a c n pa e r A Ma r ; n n w u l t o tn : e rha dr lc c e
b pyn r A yAp li gWod VB
W ANG Di
( e i ntueo o t l n i eig, eig 0 10 B in Istt f n o E gn r jg i C r e n B in 10 9 ) j
A b t a t To s r c : ha l te un o d pl t c n e t fls nde h kn wn u i e o tntwih i e ,W od ca r VBA p o r m r e po e h r t tma ial r g a a e m ly d e e o auo tc l y
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

46 橙色 Orange #FF6600 255 102 0
47
蓝- 灰
Blue-Gray
#666699 102 102 153
48
灰- 40%
Gray-40%
#969696 150 150 150
49 深青 Dark Teal #003366 0 51 102
50 海绿 Sea Green #339966 51 153 102
Dim MyArray() As String, aArray As Variant
On Error Resume Next ' 忽略错误
With ActiveDocument ' 遍历段落(注:原始文献资料中提供的是 ThisDocument,我发现没有反应,后来改为ActiveDocument可以了)
36
浅黄 色
Light Yellow
#FFFF99 255 255 153
37 淡蓝 Pale Blue #99CCFF 153 204 255 色
38
玫瑰 红
Rose #FF99CC 255 153 204
39
淡紫 色
Lavender #CC99FF 204 153 255
40 茶色
Tan
#FFCC99 255 204 153
但是如果经常使用这个功能,操作会显得有点麻烦,应在工具栏中设立 一个快捷菜单。
设置方法为:“工具”——“自定义”弹出如下界面,“命令”——“宏”,将对应的功能直接拖入到工 具栏中。
但拖入之后再工具栏中显示的名称是模块的名称(例如:Normal.模块 1.SearchSames)。这样还不够直观,可以更名,如下操作:
With ActiveDocument.Content.Find .Text = s1 .Replacement.Text = s1 .Replacement.Highlight = True .Execute Replace:=wdReplaceAll
End With Exit For End If Next
6 黄色 Yellow #FFFF00 255 255 0
7
粉红 色
Pink
#FF00FF 255 0 255
8
青绿 色
Turquoise
#00FFFF
0 255 255
9
深红 色
Dark Red
#800000 128 0
0
10 绿色 Green #008000 0 128 0
11
深蓝 色
Dark Blue
#808080 128 128 128
17
海螺 色
Periwinkle
#9999FF 153 153 255
18
梅红 色
Plum+
#993366 153 51 102
19 象牙 色
Ivory #FFFFCC 255 255 204
20浅Βιβλιοθήκη 绿Lite Turquoise
#CCFFFF 204 255 255
“重排命令”——“工具栏”——“格式”——“更改所选内容”——“命名”。
实例(查找是否存在相同的句子):
下面这段代码是可以按照句子的模式搜索文档内部全部内容的——根据 标点符号来判断句子,按照一个句子检索全文中是否出现相同的句子, 并且标记为红色。
Sub SearchSames()
Dim i As Paragraph, oSen As Range, MySearchRange As Range
进入“工具”——“宏”——“Visual Basic 编辑器”(或者使用快捷键
Alt+F11直接进入),出现这个界面:
在Normal处,右键,菜单中,增加模块,将如下实例的代码直接复制到 右边的代码区即可。当然在Project里面如此操作也可以,但是只能对你 要处理的文档有效,而在Normal中则保存为通用的功能了。 保存,退出Visual Basic,回到原来的文档状态。运行刚刚加入的宏(可 用Alt+F8直接启动)即可对当前活动的文档进行检查处理。
Options.DefaultHighlightColorIndex = wdBrightGreen '将用绿色标出 (其他颜色也可以任意设置,只要将wdBrightGreen改成wdBlack黑色, wdRed红色,等等,详见后面的对应表) For i = 1 To Len(s) - 2 * n
s1 = Mid(s, i, n) If InStr(i + Len(s1), s, s1) > 0 Then
说明:
使用者要能够熟练使用word,稍微懂一点Visual Basic语言,当然完 全不懂也没有太大关系,只要按照下面做就可以,只是如果懂一点的 话,更容易看懂代码,并且可以进行一些改造,使其更适合个人使用。
我用来验证的系统为Win7旗舰版和Word2003。
操作演示:
启动Word2003,如果宏安全性高的话,无法使用宏功能,要进行设 置“工具”——“宏”——“安全性”——“中”或“低”,再重新启动Word2003 即可。
0
0 128
26
粉红 色
Pink+
#FF00FF 255 0 255
27 黄色 Yellow+ #FFFF00 255 255 0
28
青绿 色
Turquoise+
#00FFFF
0 255 255
29
紫罗 兰
Violet+
#800080 128 0 128
30
深红 色
Dark Red+
#800000 128 0
41
浅蓝 色
Light Blue
#3366FF 51 102 255
42
水绿 色
Aqua #33CCCC 51 204 204
43
酸橙 色
Lime
#99CC00 153 204 0
44 金色 Gold #FFCC00 255 204 0
45
浅橙 色
Light Orange
#FF9900 255 153 0
Next m
End Sub
实例(清除颜色)
在上述操作后,删除了相同的内容,但是保留的内容的颜色会为后续操 作带来一些不便,可以用下面的小代码,一次性清楚全部文档内容的颜 色标记。(当然,如果原来自己标注颜色的内容也会被清除)
Sub ClearColor2003() '清除上面代码所标的红色:
ActiveDocument.Content.HighlightColorIndex = 0
Gray-80%
MySearchRange.Paragraphs(1).Range.Font.Color = wdColorRed Loop Next End With
GN: Next End With
End Sub
实例(查找是否存在相同的字符串)
网友的原始代码如下:
Sub FindRepeat2003()
Dim s As String, s1 As String, i As Long, n As Long s = ActiveDocument.Content n = 3 '所搜索重复字符串长度 Options.DefaultHighlightColorIndex = wdRed '将用红色标出 For i = 1 To Len(s) - 2 * n s1 = Mid(s, i, n) If InStr(i + Len(s1), s, s1) > 0 Then With ActiveDocument.Content.Find .Text = s1 .Replacement.Text = s1 .Replacement.Highlight = True .Execute Replace:=wdReplaceAll End With Exit For End If Next
For Each i In .Paragraphs ' 如果为空白段落则跳过或者到达最后一个 段落则进入下一个循环
If VBA.Len(i.Range) = 1 Or i.Range.Start = st.Range.Start Then GoTo GN
Set MySearchRange = .Range(i.Range.End, .Content.End)
51 深绿 Dark Green #003300 0 51 0
52
橄榄 色
Olive Green
#333300
51
51
0
53 褐色 Brown #993300 153 51 0
54
梅红 色
Plum
#993366 153 51 102
55 靛蓝 Indigo #333399 51 51 153
56
灰- 80%
21
深紫 色
Dark Purple
#660066
102
0
102
22
珊瑚 红
Coral
#FF8080 255 128 128
23
海蓝 色
Ocean Blue
#0066CC
0 102 204
24 冰蓝 Ice Blue #CCCCFF 204 204 255
25
深蓝 色
Dark Blue+
#000080
End Sub
但是这个代码中,设定了n=3,当然用户可以自行更改为任意值,可是 每次这样繁琐的操作,去修改代码再运行,会让用户崩溃的。
因此,我设置了一个小循环,一次性搜索字符串长度在150到250之间 (For m = 250 to 150)的所有内容,每次改变一个单位长度(Step -1)。当然使用者,可以根据自己的情况,任意改变这几个参数。
相关文档
最新文档