Word VBA:。隐藏函数不';你不会隐藏吗?

Word VBA:。隐藏函数不';你不会隐藏吗?,vba,ms-office,ms-word,Vba,Ms Office,Ms Word,我使用了一个旧的MS Word文档,使其具有新的布局 我上周完成了,一切正常,主宏必须隐藏或显示一些文本 为此,将文本区域设置为“书签”,然后获取此书签并将其字体设置为隐藏: ActiveDocument.Bookmarks("MyBookMarkname").Range.Font.Hidden = True 'Or False 它是如何在旧文档上完成的,我只需在新文档上执行相同的操作(重新创建那些书签) 但是今天,当再次尝试进行此操作时,文本不再隐藏!当它应该被隐藏时,文本就像用一条蓝色的小

我使用了一个旧的MS Word文档,使其具有新的布局

我上周完成了,一切正常,主宏必须隐藏或显示一些文本

为此,将文本区域设置为“书签”,然后获取此书签并将其字体设置为隐藏:

ActiveDocument.Bookmarks("MyBookMarkname").Range.Font.Hidden = True 'Or False
它是如何在旧文档上完成的,我只需在新文档上执行相同的操作(重新创建那些书签)

但是今天,当再次尝试进行此操作时,文本不再隐藏!当它应该被隐藏时,文本就像用一条蓝色的小线划线一样(当一个单词拼写不正确时,就是这条线,但是是蓝色的)

我在网上搜索,发现了一些东西,但没有一个有用:

Private Sub HideHiddenText()
    For Each myWindow In Windows
        myWindow.View.ShowHiddenText = False
    Next myWindow
End Sub
我也没有启用“修订模式”


有什么问题吗?

我相信Word显示的蓝色波浪线是由隐藏文本触发的,因为Word使用蓝色线条来标记格式不一致。要清除Office 2007/2010中的行,请转到

Office Orb菜单(2007)或文件菜单(2010)|选项|高级

并取消选中标记格式不一致

但是,蓝色波浪线与显示的隐藏文本无关。我相信这是因为“显示/隐藏格式标记”功能已打开。要确保vba将隐藏的文本保持为隐藏,您需要以下内容:

With ActiveDocument
    .ActiveWindow.View.ShowAll = False 'Hide all formatting marks
    .ActiveWindow.View.ShowHiddenText = False 'Do not display hidden text
    .Application.Options.PrintHiddenText = False 'Do not print hidden text
End With

值得注意的是,有经验的Word用户总是可以选择通过Word的用户界面显示隐藏文本,如果要避免这种情况,需要投入大量额外的工作来禁用可用于显示隐藏文本的本机Word功能(如果可能的话).

如果占位符正在显示,还可以添加以下命令:
.ActiveWindow.View.ShowBookmarks=False