word文档中有文字,有表格,如何整体修订?文字格式如缩进,对齐方式,行距。表格如何也统一修改格式。

2025-04-07 06:28:56
推荐回答(3个)
回答1:

用vba代码可以实现。
下面这段代码是设置文字格式的,根据标题序号的不同,设置不同的格式。供参考!
Private Sub CommandButton4_Click() '排版格式
Dim T_WORD As String
Dim RNG As Range
Dim mypra As Paragraph
Set mydic = CreateObject("Scripting.Dictionary") '二级标题字符
mydic.Add "一", 1
mydic.Add "二", 1
mydic.Add "三", 1
mydic.Add "四", 1
mydic.Add "五", 1
mydic.Add "六", 1
mydic.Add "七", 1
mydic.Add "八", 1
mydic.Add "九", 1
mydic.Add "十", 1

T_WORD = TextBox1.Text
导出路径文件名 = ThisDocument.Path & "\" & T_WORD
Set mydoc = Documents.Open(导出路径文件名)
mydoc.Activate
Selection.WholeStory '选中全部
Selection.ClearFormatting '清除全部格式
zz = 0
'For Each mypra In ActiveDocument.Paragraphs
For Each mypra In mydoc.Paragraphs

If Not mypra.Range.Information(wdWithInTable) = True Then '非表格段落
zz = zz + 1
MYSTR = mypra.Range.Text
mychar = Mid(MYSTR, 1, 1)
'mypra.Select
If zz = 1 Or zz = 2 Then '一级标题 黑体 小二 是 居中 1行 1行 固定值18磅 无
With mypra
.Range.Font.Name = "黑体"
.Range.Font.Size = 18 '(小二高度18磅)
.Range.Font.Bold = True
.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter

.Range.ParagraphFormat.LineUnitBefore = 1
.Range.ParagraphFormat.LineUnitAfter = 1

'.Range.ParagraphFormat.SpaceBefore = 10.5 '段前 1123修改为5号10.5磅
'.Range.ParagraphFormat.SpaceAfter = 10.5 '段后
.FirstLineIndent = 0 '首行缩进无
.LineSpacingRule = wdLineSpaceExactly
'.LineSpacingRule = wdLineSpace1pt5
.Range.ParagraphFormat.LineSpacing = 18 '行间距18磅
End With
Else
If mydic.Exists(mychar) Then '二级标题 黑体 小四 是 两端对齐 1行 1行 固定值18磅 首行缩进2字符

With mypra

.Range.Font.Name = "黑体"
.Range.Font.Size = 12
.Range.Font.Bold = True
.Range.ParagraphFormat.Alignment = wdAlignParagraphJustify

.Range.ParagraphFormat.LineUnitBefore = 1
.Range.ParagraphFormat.LineUnitAfter = 1

'.Range.ParagraphFormat.SpaceBefore = 10.5 '段前 小四高度=12磅 1123修改为5号10.5磅
'.Range.ParagraphFormat.SpaceAfter = 10.5 '段后
'.FirstLineIndent = CentimetersToPoints(1.27) '首行缩进2字符 0.635*2=1.27
.FirstLineIndent = CentimetersToPoints(0.74) '首行缩进2字符 0.74 和正文相同
' .LineSpacingRule = wdLineSpace1pt5
.LineSpacingRule = wdLineSpaceExactly

.Range.ParagraphFormat.LineSpacing = 18 '行间距18磅
End With
Else '正文 宋体 五号 否 两端对齐 0行 0.5行 固定值18磅 首行缩进2字符
With mypra
.Range.Font.Name = "宋体"
.Range.Font.Size = 10.5
.Range.Font.Bold = False
.Range.ParagraphFormat.Alignment = wdAlignParagraphJustify
'.Range.ParagraphFormat.SpaceBefore = 0 '段前0
'.Range.ParagraphFormat.SpaceAfter = 5.25 '段后0.5*10.5=5.25

.Range.ParagraphFormat.LineUnitBefore = 0
.Range.ParagraphFormat.LineUnitAfter = 0.5

.FirstLineIndent = CentimetersToPoints(0.74) '0.37*2=0.74
.LineSpacingRule = wdLineSpaceExactly
.Range.ParagraphFormat.LineSpacing = 18 '行间距18磅
.Alignment = wdAlignParagraphJustify
End With
If zz = 3 Then '第3段落居中
With mypra
.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With

End If
End If
End If

End If
Next mypra
mydoc.Save
mydoc.Close False '关闭word文档
Set mydoc = Nothing '清空工作簿项目

End Sub

回答2:

ctrl+A组合键,全选,调整格式,就一样了,然后在修订一些个别的不一样的格式就行了。

回答3:

选中同类要修改的部分,按住crtl键,鼠标单击进行选择,就可统一修改