Vba 更改表格标题位置
如何更改word文档中现有表格标题的位置?我有一个word文档,其中有100个表,标题添加在表的顶部,但我需要将其移动到表的底部。我的表格标题也有标题Vba 更改表格标题位置,vba,ms-word,Vba,Ms Word,如何更改word文档中现有表格标题的位置?我有一个word文档,其中有100个表,标题添加在表的顶部,但我需要将其移动到表的底部。我的表格标题也有标题 Sub change_caption_position() Application.ScreenUpdating = False Dim i As Long With ActiveDocument For i = .Tables.Count To 1 Step -1 .Tables(i).Application.Capt
Sub change_caption_position()
Application.ScreenUpdating = False
Dim i As Long
With ActiveDocument
For i = .Tables.Count To 1 Step -1
.Tables(i).Application.Caption = ""
.Tables(i).Select
Selection.InsertCaption Label:="Table", TitleAutoText:="", _
Title:="", Position:=wdCaptionPositionBelow, ExcludeLabel:=0
Next
End With
Application.ScreenUpdating = True
End Sub
Caption属性指的是应用程序标题栏,而不是文档中的标题。(见附件) 我找不到任何方法直接引用文档中的标题。但是,标题使用字段存储在文档中,因此您可以使用字段集合访问它们。具体而言,序列(SEQ)字段用于生成数字。标题的其余部分只是文本 要查找标题,可以循环浏览文档中的所有字段,并确定哪些字段是序列字段。您可能有其他类型的标题,例如用于数字的标题,因此使用Code属性获取字段的全文,并检查它是否用于表格。然后需要识别包含此字段的段落并将其删除 以下是一个示例:
Sub Delete_Table_Captions()
Application.ScreenUpdating = False
Dim i As Long
With ActiveDocument
For i = .Fields.Count To 1 Step -1
Dim f As Field
Set f = .Fields(i)
If f.Type = wdFieldSequence Then
Dim s As String
s = f.Code.Text
If InStr(1, s, "Table", vbTextCompare) > 0 Then
f.Code.Paragraphs(1).Range.Text = ""
End If
End If
Next
End With
Application.ScreenUpdating = True
End Sub
注意:这只是删除了原始标题,所以您仍然需要插入新标题。您的示例没有将现有标题文本复制到新标题中,因此如果您想这样做,您需要在删除原始标题并创建新标题之前存储原始标题中的文本。您可以从第(1)段.Range.text中提取相关文本您发布的代码有什么问题?如果它不做您想要的,它会做什么?.Tables(i).Application.Caption=”“不会删除我现有的标题,因此我最终会在每个表上获得两个标题。Application.Caption指的是应用程序窗口标题栏中显示的文本,而不是表()的标题,因此,设置此选项不会更改表格标题