我需要在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
问题是有时文本包含一个段落,有时只包含一个新行。试图找出用段落替换所有新行。非常感谢任何帮助。
谢谢!
答案 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