Vba 通过VBS在Word中设置字体大小仅适用于某些文档

Vba 通过VBS在Word中设置字体大小仅适用于某些文档,vba,vbscript,ms-word,formatting,ms-office,Vba,Vbscript,Ms Word,Formatting,Ms Office,我试图通过VBScript以编程方式修改一组单词标题 我采取的步骤如下(在psuedocode中): 我遇到的问题是,一个小而一致的文档组应用了除字体更改之外的所有步骤 我专门用于执行字体更改的代码如下: Sub setFont ' Select the header view WordApp.ActiveWindow.ActivePane.View.SeekView = 9 ' Set the font to 9 WordApp.ActiveWindow.Se

我试图通过VBScript以编程方式修改一组单词标题

我采取的步骤如下(在psuedocode中):

我遇到的问题是,一个小而一致的文档组应用了除字体更改之外的所有步骤

我专门用于执行字体更改的代码如下:

Sub setFont
    ' Select the header view
    WordApp.ActiveWindow.ActivePane.View.SeekView = 9 
    ' Set the font to 9
    WordApp.ActiveWindow.Selection.Font.Size = "9"
    ' Go back the the main body view
    WordApp.ActiveWindow.ActivePane.View.SeekView = 0 
End Sub
据我所知,脚本失败的那批文档没有任何独特之处。文档集包含各种字体大小和制表位,脚本在该集中的70多个其他文档上运行良好


如果有人能帮我确定为什么该代码在某些文档上不起作用,我将不胜感激。

您可能需要设置
选项
,使其包含整个标题。这是添加了代码行的代码。警告:未测试

Sub setFont()
    ' Select the header view
    WordApp.ActiveWindow.ActivePane.View.SeekView = 9
    ' Make the selection the entire header
    WordApp.ActiveWindow.Selection.WholeStory
    ' Set the font to 9
    WordApp.ActiveWindow.Selection.Font.Size = "9"
    ' Go back the the main body view
    WordApp.ActiveWindow.ActivePane.View.SeekView = 0
End Sub
您可能可以将
与。。。在此代码中以
块结尾:

Sub setFont()
    With WordApp.ActiveWindow
        ' Select the header view
        .ActivePane.View.SeekView = 9
        ' Make the selection the entire header
        .Selection.WholeStory
        ' Set the font to 9
        .Selection.Font.Size = "9"
        ' Go back the the main body view
        .ActivePane.View.SeekView = 0
    End With
End Sub

您可能需要设置
选择
,使其包含整个标题。这是添加了代码行的代码。警告:未测试

Sub setFont()
    ' Select the header view
    WordApp.ActiveWindow.ActivePane.View.SeekView = 9
    ' Make the selection the entire header
    WordApp.ActiveWindow.Selection.WholeStory
    ' Set the font to 9
    WordApp.ActiveWindow.Selection.Font.Size = "9"
    ' Go back the the main body view
    WordApp.ActiveWindow.ActivePane.View.SeekView = 0
End Sub
您可能可以将
与。。。在此代码中以
块结尾:

Sub setFont()
    With WordApp.ActiveWindow
        ' Select the header view
        .ActivePane.View.SeekView = 9
        ' Make the selection the entire header
        .Selection.WholeStory
        ' Set the font to 9
        .Selection.Font.Size = "9"
        ' Go back the the main body view
        .ActivePane.View.SeekView = 0
    End With
End Sub

您可以手动更改其中一个文档中的字体大小吗?使用宏录制器在一个问题文件中手动记录更改字体的情况,并查看是否有任何显示。@ChipsLetten这样做会产生以下VBA:'Selection.wholetory Selection.font.Size=9'您对如何将其集成到我的子文件中有何建议?我承认,在从VBA迁移到VBS的过程中,我有点迷失了方向。(编辑:发布得太早。)能否手动更改其中一个文档中的字体大小?使用宏录制器在一个问题文件中手动记录更改字体的情况,并查看是否有任何显示。@ChipsLetten这样做会产生以下VBA:'Selection.wholetory Selection.font.Size=9'您对如何将其集成到我的子文件中有何建议?我承认,在从VBA迁移到VBS的过程中,我有点迷失了方向。(编辑:发布得太早。)按照您的建议修改的脚本运行时没有错误,但仍然不会更改问题文档上的字体。(感谢您提供的With…End With示例。这是一个有用的表示法!)编辑:我可以提供有关问题文档的更多信息吗?如果在VBA中运行代码,字体大小是否会更改?不知道我还能建议什么。你能在某处发布问题文档样本吗?它能。这里有一个拒绝更改的文档:该文档的标题中没有任何内容。有关选择语言的文本和可用选项位于文档的主文本中。我的浏览器没有获得正确的文件。现在更有意义了。按照您的建议修改的脚本运行时没有错误,但仍然不会更改问题文档上的字体。(感谢您提供的With…End With示例。这是一个有用的表示法!)编辑:我可以提供有关问题文档的更多信息吗?如果在VBA中运行代码,字体大小是否会更改?不知道我还能建议什么。你能在某处发布问题文档样本吗?它能。这里有一个拒绝更改的文档:该文档的标题中没有任何内容。有关选择语言的文本和可用选项位于文档的主文本中。我的浏览器没有获得正确的文件。现在更有意义了。