【问题标题】:How to add table captions in MS Word using macros如何使用宏在 MS Word 中添加表格标题
【发布时间】:2016-12-16 12:05:11
【问题描述】:
我正在尝试修改 MS Word 中 100 个现有表格的标题。为了避免这个繁琐的过程,我希望使用内置的 VB 宏功能。
如果我的表格在文档内容的部分内:
- 简介
1.1 目标
我希望用“简介 - 目标”修改表格标题。如果表格标题已经是“表格 1-1”,我希望它阅读:
Table 1-1 Intro Goals
宏运行后,这可能吗?怎么样?
【问题讨论】:
标签:
vba
ms-word
macros
caption
【解决方案1】:
下面的脚本是一个批处理过程,它对文件夹中的所有 Word 文件执行查找/替换例程。
Sub FindReplaceAll()
Dim MyDialog As FileDialog, GetStr(1 To 100) As String
'100 files is the maximum applying this code
On Error Resume Next
Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)
With MyDialog
.Filters.Clear
.AllowMultiSelect = True
i = 1
If .Show = -1 Then
For Each stiSelectedItem In .SelectedItems
GetStr(i) = stiSelectedItem
i = i + 1
Next
i = i - 1
End If
Application.ScreenUpdating = False
For j = 1 To i Step 1
Set Doc = Documents.Open(FileName:=GetStr(j), Visible:=True)
Windows(GetStr(j)).Activate
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Marriott International" 'Find What
.Replacement.Text = "Marriott" 'Replace With
.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
Application.Run macroname:="NEWMACROS"
ActiveDocument.Save
ActiveWindow.Close
Next
Application.ScreenUpdating = True
End With
MsgBox "operation end, please view", vbInformation
End Sub
' 想法来自这里。
'https://www.extendoffice.com/documents/word/1002-word-replace-multiple-files.html