在长篇的word文档排版中,往往需要在文档中表格的上方插入题注,同时在题注上方插入一个“XXX如YYY所示”的交叉引用。
可以使用如下的vba代码实现:
Sub QQ1722187970() Word.Application.ScreenUpdating = False Dim oRng As Range Dim oDoc As Document Dim oCL As CaptionLabel Dim oT As Table Set oDoc = Word.ActiveDocument With oDoc Set oCL = Word.CaptionLabels.Add("表") '设置新增的题注样式 With oCL .ChapterStyleLevel = 1 .IncludeChapterNumber = True .NumberStyle = wdCaptionNumberStyleArabic End With i = 1 For Each oT In .Tables Set oRng = .Range(oT.Range.Start - 2, oT.Range.Start - 1) With oRng ' 将oRng对象按照整个段落选中 , oRng对象自动变为整个段落的Range对象 oRng.Expand wdParagraph '如果有自动编号,删除 oRng.ListFormat.RemoveNumbers ' 读取标题的文本内容 sText = VBA.Replace(oRng.Text, Chr(13), "") .Delete '插入题注 .InsertCaption "表", sText '插入XX如YY所示的交叉引用 .InsertBefore "所示:" & Chr(13) '重新定义区域 .SetRange .Start, .Start .InsertCrossReference "表", wdOnlyLabelAndNumber, i oRng.Expand wdParagraph .SetRange .Start, .Start .InsertBefore sText & "如" End With i = i + 1 Next End With Word.Application.ScreenUpdating = True End Sub
发表评论