Word VBA宏:用段落

时间:2016-04-23 23:07:25

标签: vba ms-word newline paragraph

我需要在Word宏中执行以下操作。

我需要浏览Word文档并根据参数更改某些段落。如果段落的字体大小是19.5,那么段落必须得到样式标题1.下一段将是标题2,然后是下一段 - 标题3.其他文本将保持样式为“正常”。

写下以下宏:

Sub styles_temp()

' Declare a paragraph
Dim p As Paragraph

' Declare the current size.
Dim currentSize As Single

'Iterate through the text and print each paragraph
For Each p In ActiveDocument.Paragraphs

' Determine current size of the paragraph
currentSize = p.Range.Font.Size

' If size is 19.5, it will be Heading 1
If currentSize = 19.5 Then

    p.Range.Style = ActiveDocument.Styles("Heading 1")

    ' Next Line is Heading 2
    p.Next.Range.Style = ActiveDocument.Styles("Heading 2")


ElseIf p.Range.Style = "Heading 2" Then
    p.Next.Range.Style = ActiveDocument.Styles("Heading 3")

End If

Next p

End Sub

问题是有时文本包含一个段落,有时只包含一个新行。试图找出用段落替换所有新行。非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:2)

听起来你的意思是整个文件:“用段落替换所有新行”

ActiveDocument.Content.Find.Execute FindTExt:="^l", ReplaceWith:="^p", Replace:=wdReplaceAll

注意:您的代码正在使用ActiveDocument。将此值分配给变量会更有效且更安全

Dim doc as Word.Document
Set doc = ActiveDocument
doc.Content.Find.Execute FindTExt:="^l", ReplaceWith:="^p", Replace:=wdReplaceAll