VBA代码解决方案第145讲:WORD中VBA的循环、查找、替换的利用

论坛 期权论坛 期权     
VBA语言专家   2019-6-9 21:27   3296   0

点击上面蓝色字体关注公众号

大家好,我们今日继续讲解VBA代码解决方案的第145讲内容:WORD中VBA的循环、查找、替换的利用。在讲EXCEL的过程中,循环、查找、替换是很普遍的事情,那么这些功能可否能在WORD中实现呢?当然的。VBA代码解决方案一书马上就要完结了,我争取在最后的几讲中尽可能多的讲一下实际的利用,让广大的朋友能得到最多的经验。对于VBA来说,循环的结构还是和EXCEL一样的,只不过在细节上有所差别。今日将将两个实例,分别就查找和替换、循环来进行讲解。
我们先看看查找的语法:expression.find.Execute(FindText、MatchCase、 MatchWholeWord、MatchWildcards、MatchSoundsLike、MatchAllWordForms、Forward、 Wrap、Format、ReplaceWith、Replace、MatchKashida、 MatchDiacritics、MatchAlefHamza、MatchControl)
这里的参考较多,我们只就其中几个重要的进行讲解一下:
① FindText 可选Variant 要搜索的文本。 使用空字符串 ("") 仅搜索格式。可以指定适当的字符代码来搜索特殊字符。 例如,“^p”对应于段落标记,“^t”对应于制表符
②Forward   可选Variant真 要向前搜索 (向文档的末尾)。
③ ReplaceWith  可选    Variant 替换文字。 要删除由 Find 参数指定的文字,可使用空字符串 ("")。 与 Find 参数相似,该参数也可以指定特殊的字符和高级搜索条件。要将图形对象或者其他非文本项指定为替换内容,可将这些项置于剪贴板上,然后将 ReplaceWith 指定为"^c"。
④Replace   可选    Variant 指定执行替换的个数:一个、全部或者无。 可以是任何**WdReplace** 常量。
一 实例一:在一段文字中查找到字符“VBA”,然后用“WeChat:NZ9668”来替换。在做这段程序的时候,要先定义Rang范围,然后用FIND进行查找和替换即可。如下面的代码:
Sub mynzTESTO()
Dim mypath, myfile, wApp, MyRange
Set MyRange = ActiveDocument.Content
MyRange.Find.ExecuteFindText:="VBA", ReplaceWith:="WeChat:NZ9668",Replace:=wdReplaceAll
End Sub
代码截图:


在运行前的文档:


运行程序:


二:在一段文字中查找到字符“VBA”,然后把第10个之后的“VBA”后面插入“ WeChat:NZ9668”,这个例子看似简单,实际不是很简单的,我们看下面的代码:
Sub mynzTESTT()
  DimMyRange As Range, FindCount As Integer
Application.ScreenUpdating = False
100:
'定义一个Range对象
WithActiveDocument
  IfNot MyRange Is Nothing Then
   Set MyRange = .Range(MyRange.End, .Content.End)
Else
   Set MyRange = ActiveDocument.Content
  EndIf
EndWith
With MyRange.Find '查找
.ClearFormatting '清除查找格式
.Forward = True '向下搜索
.Text = "VBA" '搜索文本
  DoWhile .Execute '如果能查找到
FindCount = FindCount + 1 '计数
  IfFindCount > 10 Then
MyRange.InsertAfter " WeChat:NZ9668" '在查找到的文本区域后插入
  EndIf
GoTo 100
Loop
End With
Application.ScreenUpdating = True
End Sub
代码截图:


仍是上面的运行前的截图,我们看看运行上述程序后的结果:





上述代码的讲解在程序中我已经加了注释,读者可以自己理解。
今日内容回向:
1 如何实现查找和替换的过程呢?
2 在WORD中的循环是怎么建立的呢?
3 上述的第二个例子为什么要有个GOTO 语句呢?

  
分享成果,随喜正能量

长按二维码  关注公众号


长按二维码  关注版主微信

标VBA加好友,获VBA积木信息




分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:200
帖子:40
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP