如何用VBA实现WORD批量替换?
For i = 1 To n 'n是listview1的行数Selection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = ListView1.ListItems(i).SubItems(0) 'Findstr=listview1的第i行第1列对应单元格的内容.Replacement.Text = ListView1.ListItems(i).SubItems(1) 'Findstr=listview1的第i行第2列对应单元格的内容.Forward = True.Wrap = wdFindContinue.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = FalseEnd WithSelection.Find.Execute Replace:=wdReplaceAllListView1.selectedItem = iNextMsgBox "处理完毕!", vbInformation + vbOKOnly, "消息"ListView1.selectedItem = 1
word 使用vba 怎么改一个内容?
操作步骤。
第一,首先将需要批量替换的多个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 Then myPath = .SelectedItems(1) Else Exit Sub End IfEnd WithmyPas = InputBox("请输入打开密码:")With Application.FileSearch .LookIn = myPath .FileType = msoFileTypeWordDocuments If .Execute > 0 Then For i = 1 To .FoundFiles.Count Set myDoc = Documents.Open(FileName:=.FoundFiles(i), Passworddocument:=myPas) Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "大家好" .Replacement.Text = "你好" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll myDoc.Save myDoc.Close Set myDoc = Nothing Next End IfEnd WithApplication.ScreenUpdating = TrueEnd Sub 第五,保存上面代码,退出VB编辑模式,返回Word文档界面。
第六,单击选中该按钮,再单击控件工具箱的第一个按钮“退出设计模式”。
第七,进行测试:点击按钮,选择要放置多个WORD文档所在的文件夹,确定后即可完成!注意如果WORD文档没有加密的话,密码项就不填,直接确认。
就会发现该文件夹下面的所有WORD文档中“大家好”已被替换为“你好”了。
word vba问题 如何批量替换文件夹内所有的WORD文档内相同的词组...
Sub 批量修改()'On Error Resume NextDim FileOpenDim X As IntegerDim wb As WorkbookApplication.ScreenUpdating = FalseFileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="选择工作薄")X = 1While X Set wb = Workbooks.Open(FileOpen(X))wb.Sheets(1).[a1] = "456"wb.Sheets(1).[D4] = "王月"wb.Close TrueX = X + 1WendEnd Sub这个宏 会把 你选中的文件 批量替换 sheet1 :A1的内容 改为 456 D4 的内容改为 王月, 你可以根据你的实际情况修改代码就可以了, 如果单元格不固定就 用FIND 方法找到再修改
word中用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,在赋值前把回车符去掉。
VBA可以将excel单元格内容,替换word文档指定位置中的内容么?
当然可以,我以前写的,你可以参考一下:Private Sub CommandButton1_Click()On Error Resume NextDim iRow As Integer, myPath As StringDim wdApp As Word.Application, wdDoc As Word.Document, wdRange As Word.RangeDim 收文日期 As String, 标题 As String, 来文单位 As String, 文号 As String, 拟办情况 As String'--------------------------------------------------------------------------------------------------------Label3.Caption = "封面正在生成中..."'--------------------------------------------------------------------------------------------------------iRow = TextBox1.Text'获取待填写信息来文单位 = Cells(iRow, 3).Text来文单位 = Replace(来文单位, Chr(10), "^p") '将excel中的换行替换成word中的换行文号 = Cells(iRow, 4).Text文号 = Replace(文号, Chr(10), "^p") '将excel中的换行替换成word中的换行标题 = Cells(iRow, 5).Text标题 = Replace(标题, Chr(10), "^p") '将excel中的换行替换成word中的换行收文日期 = CStr(Year(Now())) & Cells(iRow, 6).Text拟办情况 = TextBox2.Text'--------------------------------------------------------------------------------------------------------myPath = ThisWorkbook.Path & "\封面\"'文件若已打开,则关闭已打开文件For Each wdDoc In Documents If InStr(1, wdDoc.Name, myPath & "(" & 收文日期 & ")" & 标题 & ".doc", 1) Then wdDoc.Close savechanges:=wdDoNotSaveChanges Exit For End IfNext wdDoc'--------------------------------------------------------------------------------------------------------Set wdDoc = CreateObject(myPath & "空白模板.doc") '打开wordwdDoc.Activate '--------------------------------------------------------------------------------------------------------'填写文档Set wdRange = wdDoc.Content '将word的文档内容赋予wdrangewdRange.Find.Execute FindText:="{来文单位}", ReplaceWith:=来文单位, Replace:=wdReplaceAllwdRange.Find.Execute FindText:="{文号}", ReplaceWith:=文号, Replace:=wdReplaceAllwdRange.Find.Execute FindText:="{收文时间}", ReplaceWith:=收文日期, Replace:=wdReplaceAllwdRange.Find.Execute FindText:="{内容摘要}", ReplaceWith:=标题, Replace:=wdReplaceAllwdRange.Find.Execute FindText:="{办公室拟办}", ReplaceWith:=拟办情况, Replace:=wdReplaceAll'--------------------------------------------------------------------------------------------------------'文档另存为wdDoc.SaveAs Filename:=myPath & "(" & 收文日期 & ")" & 标题 & ".doc"End Sub
excelvba代码中如何批量替换变量
1、打开Word文件的 VBA编辑器,快捷键 Alt+F11,右击【ThisDocument】-》 【插入模块】;用VBA代码设置Word自动保存的步骤2、双击刚才插入的【模块1】,添加如下代码:Sub 自动备份()Dim NewTimeNewTime = Now + TimeValue(“00:05:10”)Dim myPath$, myName$myPath = ActiveDocument.PathmyName = Left$(ActiveDocument.Name, Len(ActiveDocument.Name) - 4)ChangeFileOpenDirectory myPathActiveDocument.SaveAs FileName:=myName & “_temp.doc”, ReadOnlyRecommended:=TrueActiveDocument.SaveAs FileName:=myName & “.doc”, ReadOnlyRecommended:=FalseApplication.OnTime NewTime, “自动备份”CreateObject(“Wscript.shell”).popup “备份成功,备份文件名为:” & myName & “_temp.doc”, 2, “提示!2秒后自动关闭!”End Sub用VBA代码设置Word自动保存的步骤用VBA代码设置Word自动保存的步骤3、双击【ThisDocument】并在其中 添加如下代码:Private Sub Document_Open()Call 自动备份End Sub用VBA代码设置Word自动保存的步骤4、默认自动备份时间为5min,如要调整请修改【模块1】中一句代码:如图中红框所示:时间格式为:HH : mm : ss用VBA代码设置Word自动保存的步骤5、保存代码及文件,且关闭word并重新打开,重新打开点击【选项】-》 【启用此内容】,如图:用VBA代码设置Word自动保存的步骤6、默认备份文件名为:【原文件名_temp,Lee.doc】且为只读,提示对话框2s后自动关闭。
备份效果显示如下:
转载请注明出处51数据库 » vba word替换
无聊95170962