|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
昨天在弄一个在excel vba中调用word字符替换的功能
弄了大半天,硬是死活不能替换
后来网上搜了下原因,有人指出将
.Wrap = wdFindContinue 改为=1
Replace:=wdReplaceAll 改为=2
结果,这代码在excel中能正常运行了!
源代码如下,有些我查了注释,并写了下来
(有些在按F1的帮助文档里查不到,不知道是不是我的安装包不完整的问题)
希望有人能在在 三个问号的注释处帮我解释一下啊???
Sub ReplaceWord() '要在工具菜单中引用Microsoft Word xx.0 Object Library
Dim WdApp, Wd
Application.ScreenUpdating = False
Set WdApp = CreateObject("word.application")
Set Wd = WdApp.Documents.Open(ThisWorkbook.Path & "\测试.doc*")
WdApp.Visible = False
WdApp.Selection.Find.ClearFormatting '???
WdApp.Selection.Find.Replacement.ClearFormatting '???
With WdApp.Selection.Find
.Text = "name" ' 待查字符串为name
.Replacement.Text = "姓名" '找到后替换为姓名
.Forward = True '向前继续搜索吗?
.Wrap = 1 '???这是啥意思? 原来为 .Wrap = wdFindContinue 改为=1后运行正常
.Format = False '???
.MatchCase = False '区分大小写吗
.MatchWholeWord = False '全字符匹配
.MatchByte = True '???
.MatchWildcards = False '使用通配符吗
.MatchSoundsLike = False '要返回一个与待查字符发音相近的单词吗?
.MatchAllWordForms = False '??? 如果为 True,意为 需查找待查文本的所有形式?
End With
WdApp.Selection.Find.Execute Replace:=2 '这是啥意思? 原来为 Replace:=wdReplaceAll 改为=2后运行正常
Wd.SaveAs ThisWorkbook.Path & "\测试1.doc"
Wd.Close
WdApp.Quit
Set Wd = Nothing
Set WdApp = Nothing
Application.ScreenUpdating = True
MsgBox "转换完成", vbOKOnly, ""
End Sub
|
|