我们如何更改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.Caption = ""
.Tables(i).Select
Selection.InsertCaption Label:="Table", TitleAutoText:="", _
Title:="", Position:=wdCaptionPositionBelow, ExcludeLabel:=0
Next
End With
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
标题属性是指应用程序标题栏而不是文档中的标题。 (见https://msdn.microsoft.com/VBA/Word-VBA/articles/application-caption-property-word)
我无法找到直接引用文档中字幕的方法。但是,字幕使用字段存储在文档中,因此您可以使用Fields集合访问它们。具体地,序列(SEQ)字段用于生成数字。标题的其余部分只是文字。
要查找字幕,您可以遍历文档中的所有字段并确定哪些是序列字段。您可能有其他类型的标题,例如数字,因此请使用“代码”属性获取该字段的全文,并检查它是否适用于表格。然后,您需要识别包含此字段的段落并将其删除。
以下是一个示例:
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
中提取相关文本