首页 > 解决方案 > 使用 Excel 在单独的子文档中更改 Word 文档中的默认样式

问题描述

在 Excel 控制的 word 文档中,我想对使用的默认样式进行细微的更改。当一个 word 文档已经打开时,这可以使用以下代码:

Private Sub basic_syle()
    Dim objWord As Word.Application
    Dim objSelection As Word.selection

    Set objWord = GetObject(, "Word.application")
    Set objSelection = objWord.selection

    adjust_obj_style
End Sub

Sub adjust_obj_style()
    ActiveDocument.Styles("Heading 1").ParagraphFormat.PageBreakBefore = False
End Sub

但是,如果我想让 Excel 创建 word 文档并调整样式,则样式不会改变。

Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim objSelection As Word.selection

Private Sub basic_syle()
    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Add
    Set objSelection = objWord.selection

    objWord.Visible = True

    adjust_obj_style
End Sub

虽然我认为它与 activeDocument 类有关,但我还没有找到正确的解决方案。激活文档对象不是解决方案。

样式文档 PageBreak 文档

标签: excelvbams-word

解决方案


您需要重新定义子:

Sub adjust_obj_style(doc as Object)

然后将该文档传递给子:

adjust_obj_style objDoc

然后使用该变量而不是ActiveDocument这样:

doc.Styles("Heading 1").ParagraphFormat.PageBreakBefore = False

推荐阅读