使用Excel在单独的子文档中更改Word文档中的默认样式
在Excel控制的word文档中,我想对使用的默认样式进行细微的更改。当word文档已打开时,使用以下代码可执行此操作:使用Excel在单独的子文档中更改Word文档中的默认样式,excel,vba,ms-word,Excel,Vba,Ms 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.selecti
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类有关,但我还没有找到正确的解决方案。激活文档对象不是解决方案
您需要重新定义子系统:
Sub adjust_obj_style(doc as Object)
然后将该文件传递给sub:
adjust_obj_style objDoc
然后使用该变量代替ActiveDocument,如下所示:
doc.Styles("Heading 1").ParagraphFormat.PageBreakBefore = False
谢谢布拉克斯,我发誓我已经尝试过类似的东西了。感谢您的快速响应。此外,除非出于某种原因需要在其他地方使用变量,否则您不需要在sub之外对变量进行调暗。在我的示例中,我使用另一个sub将文本添加到word文档中。因此,变量在sub之外声明。这导致传递的变量更少。无论如何,谢谢你的点评。