|
本帖最后由 小声说话666 于 2023-7-1 22:50 编辑
公文附件及附件下大标题的宏
目的是 找到所有 附件开头的段落,先把附件换成附 件,然后把 附件和附件1 、2、3…… 设置为黑体16磅,然后把 附件下段尾不含标题的段落设为22为22磅,宋体。以下是AI给的代码, 运行到 .Font.Size = 16 就报错了,下一句 黑体那一句也报错, 注释掉后.Font.Size = 22 也错了,求大神修改一下代码为盼。
Sub FormatAttachments()
Dim para As Paragraph
Dim rng As range
Dim i As Integer
'遍历文档中的每一个段落
For Each para In ActiveDocument.Paragraphs
Set rng = para.range
rng.Start = rng.Start + 1 '跳过段落开头的段落标记
'判断段落是否以“附件”开头
If InStr(1, rng.Text, "附件") = 1 Then
'将“附件”替换为“附 件”
rng.Text = Replace(rng.Text, "附件", "附 件")
'设置符合条件的段落格式
If InStr(1, rng.Text, "附 件") = 1 Or _
(InStr(1, rng.Text, "附件") = 1 And IsNumeric(Mid(rng.Text, 4))) Then
With rng.ParagraphFormat
.LeftIndent = InchesToPoints(0)
.SpaceBefore = 0
.SpaceAfter = 0
.Alignment = wdAlignParagraphLeft
.LineSpacingRule = wdLineSpaceSingle
.Font.Size = 16
.Font.Name = "黑体"
End With
End If
'设置附件后的段落格式
If (InStr(1, rng.Text, "附件") = 1 And IsNumeric(Mid(rng.Text, 4))) Then
For i = rng.Start + Len(rng.Text) To ActiveDocument.range.End
If Mid(ActiveDocument.range(i, i + 1).Text, 1, 1) = "。" Or _
Mid(ActiveDocument.range(i, i + 1).Text, 1, 1) = "," Or _
Mid(ActiveDocument.range(i, i + 1).Text, 1, 1) = ";" Or _
Mid(ActiveDocument.range(i, i + 1).Text, 1, 1) = ":" Or _
Mid(ActiveDocument.range(i, i + 1).Text, 1, 1) = "?" Or _
Mid(ActiveDocument.range(i, i + 1).Text, 1, 1) = "!" Then
Exit For
ElseIf i = ActiveDocument.range.End Then
With ActiveDocument.range(rng.End, rng.End + 1).ParagraphFormat
.SpaceBefore = 0
.SpaceAfter = 0
.Alignment = wdAlignParagraphCenter
.LineSpacingRule = wdLineSpaceSingle
.Font.Size = 22
.Font.Name = "宋体"
End With
End If
Next i
End If
End If
Next para
End Sub
AI 解释代码:
这段VBA代码是用来格式化Word文档中的附件段落的。具体的操作如下:
1. 遍历文档中的每一个段落。
2. 对于每个段落,首先将其范围(rng)设置为段落内容的范围,然后将范围的起始位置增加1,以跳过段落开头的段落标记。
3. 判断段落是否以“附件”开头。如果是,执行以下操作:
- 将“附件”替换为“附 件”。
- 判断段落的内容是否是以“附 件”开头,或者以“附件”开头且第三个字符是数字。如果是,设置符合条件的段落格式:
- 左边距设为0英寸
- 前后的空格设为0
- 对齐方式设为左对齐
- 行间距设为单倍
- 字体大小设为16号
- 字体名称设为“黑体”
4. 判断段落的内容是否以“附件”开头且第三个字符是数字。如果是,执行以下操作:
- 遍历段落后面的文本,直到文档范围的末尾。
- 如果遇到标点符号(.、,、;、:、?、!), 跳出循环。
- 如果遍历到文档的末尾(也就是段落的内容后面没有标点符号),设置附件后的段落格式:
- 前后的空格设为0
- 对齐方式设为居中对齐
- 行间距设为单倍
- 字体大小设为22号
- 字体名称设为“宋体”
这段代码的作用是在Word文档中将附件段落进行特殊格式化,更好地展示附件的信息。
|
|