如何用VBA实现WORD批量替换?
操作步骤。
第一,首先将需要批量替换的多个Word文档放在同一文件夹下面。
第二,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。
第三,在控件工具箱上单击“命令按钮”,文档中就放置了一个按钮了。
第四,双击该按钮,进入VB代码编写模式,将以下代码复制进去。
Private Sub CommandButton1_Click()Application.ScreenUpdating = FalseDim myPas As String, myPath As String, i As Integer, myDoc As DocumentWith Application.FileDialog(msoFileDialogFolderPicker).Title = "选择目标文件夹"If .Show = -1 ThenmyPath = .SelectedItems(1)ElseExit SubEnd IfEnd WithmyPas = InputBox("请输入打开密码:")With Application.FileSearch.LookIn = myPath.FileType = msoFileTypeWordDocumentsIf .Execute >0 ThenFor i = 1 To .FoundFiles.CountSet myDoc = Documents.Open(FileName:=.FoundFiles(i), Passworddocument:=myPas)Selection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = "大家好".Replacement.Text = "你好".Forward = True.Wrap = wdFindAsk.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = FalseEnd WithSelection.Find.Execute Replace:=wdReplaceAllmyDoc.SavemyDoc.CloseSet myDoc = NothingNextEnd IfEnd WithApplication.ScreenUpdating = TrueEnd Sub第五,保存上面代码,退出VB编辑模式,返回Word文档界面。
第六,单击选中该按钮,再单击控件工具箱的第一个按钮“退出设计模式”。
第七,进行测试:点击按钮,选择要放置多个WORD文档所在的文件夹,确定后即可完成!注意如果WORD文档没有加密的话,密码项就不填,直接确认。
就会发现该文件夹下面的所有WORD文档中“大家好”已被替换为“你好”了。
WORD VBA: 查找字符并选择整个格子
这个应该完全满足要求了吧。
Sub TEST()Dim MyTable As Table, MyRng As CellFor Each MyTable In ThisDocument.TablesFor Each MyRng In MyTable.Range.CellsWith MyRng.Range.Find.Text = "RRDD-ST".ExecuteIf .Found ThenMyRng.Range.Style = ActiveDocument.Styles("引用")End IfEnd WithNext MyRngNext MyTableEnd Sub
excel vba 读取 word 指定字符
Sub 按钮1()Dim myPath As StringSet Wdapp = CreateObject("Word.Application")Wdapp.Visible = TrueApplication.ScreenUpdating = False '关闭屏幕刷新' On Error Resume Next '捕捉错误myPath = ThisWorkbook.Path & "\多房地产预评估函.doc" '定义word文件路径,自己修改Set wdDoc = Wdapp.Documents.Open(myPath) '打开wordwdDoc.Activatesr = wdDoc.Content '将word的文档内容赋予变量srMsgBox Mid(sr, InStr(sr, "籍贯") + 3, 2)wdDoc.Close '关闭wordWdapp.QuitSet Wdapp = NothingSet wdDoc = NothingApplication.ScreenUpdating = True '开启屏幕刷新End Sub
Word2010 vba 页眉替换问题
亲,这一句要改一下:mysec.Headers(1).Range.Text = Replace(Replace(mysec.Headers(1).Range.Text, "ABC", "111"), Chr(13), "")因为,如果您注意观察,会发现页眉的文字最后都有一个回车字符,就如同段落、表格的末尾一样,这个字符也是页眉的一部分。
你可以用debug.print len(mysec.headers(1).range.text)看一下页眉的长度,是包含了末尾回车字符的(chr(13))。
所以,当你用replace替换之后,这个回车字符仍然在。
注意:关键是给header.range.text赋值时,word vba默认是不含最后一个回车字符的;这样更方便编程,否则每次都要记住在末尾加一个chr(13),岂不把人烦死!最后,解决方法就是,再使用一次replace,在赋值前把回车符去掉。
Word 批量替换不同文字
用VBA来编程宏代码来实现是可以的,也不复杂。
需要宏代码的可以hi我。
如果需要工具软件,可试试这款:选择如图所示的批替换功能卡,选择处理的文件类型为doc,然后添加待处理的word文档,然后启用处理功能模块在查找中如果待查找的内容,可以启用通配符模式,或者正则模式,对应输入替换为的新内容,然后新增入列表中;有多少条就新增多少条。
注意:如果有些文字是处在文本框中的,如果也希望替换这些文字,就得勾选同时替换文本框中的数据;如果本机安装的是Office 2010版及以上的,如果处理失效的话,或者无法启用的话,可安装Office 2007/2003来处理。
vba word如何提取当前段落某个字符前的字符
可以用下面的代码来实现:Sub mytest()Selection.MoveDown unit:=wdParagraphSelection.MoveUp unit:=wdParagraph, Extend:=wdExtendutxt = Selection.Range.Textupos = InStr(utxt, "、")If upos > 0 Thenut = Left(utxt, upos - 1)MsgBox ut '这里就是要提取的内容ElseMsgBox "没有找到顿号!!!"End IfEnd Sub
转载请注明出处51数据库 » word vba替换字符