Word中的VBA段落样式



我正在尝试从Excel文档格式化Word文档。我得到

运行时错误5941:所请求的集合成员不存在存在。

我只是想把第二段的样式设置为正常的内置样式。我可能缺乏经验。问题似乎是段落选择,但我不完全确定如何去做。

Dim WordApp As Word.Application
Set WordApp = New Word.Application
WordApp.Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0
WordApp.Visible = True
WordApp.Selection.TypeText ("New Document")
WordApp.Selection.Paragraphs(1).Style = wdStyleHeading1
WordApp.Selection.TypeText vbNewLine & "Date" & Date
WordApp.Selection.Paragraphs(2).Style = wdStyleNormal
End Sub

编辑:我现在正试图找到最好的方法来改变格式在同一行。例如:

日期:10/02/2021

问题是,到目前为止,我的样式更改适用于整个段落。什么好主意吗?

更妙的是:

Sub Demo()
Dim WdApp As New Word.Application, WdDoc As Word.Document
With WdApp
.Visible = True
Set WdDoc = .Documents.Add
With WdDoc
.Range.Text = "New Document" & vbCr & "Date: " & Date
.Paragraphs(1).Style = wdStyleHeading1
End With
End With
End Sub

请注意,没有代码来选择普通模板或对第二段应用普通样式。这是因为默认模板是"Normal",默认样式是"Normal",因此不需要指定这些。如果你想要一个特定的默认样式的文档作为一个整体,只被替换的标题等,应用它通过'.段落(1)。Style = 'before'. range。Text = '.

您想使用ActiveDocument而不是Selection:

WordApp.ActiveDocument.Paragraphs(2).Style = wdStyleNormal

最新更新