2017-04-26 93 views
0

因此,我有一组代码可以选择隐藏文本的特定范围,我需要一个可以选择隐藏文本并取消隐藏的宏。但是,我不知道如何在不显示它们的情况下选择那些隐藏的文本。有没有办法在不显示的时候选择隐藏文字。我正在尝试创建一个动态模板,如果某些条件被选中,只有某些文本会出现。到目前为止,这是我取消隐藏隐藏文本的代码。MS Word如何选择隐藏文本

Sub Macro2() 
' 
' Macro2 Macro 
' 
' 
    Selection.MoveDown Unit:=wdLine, Count:=1 
    Selection.MoveUp Unit:=wdParagraph, Count:=4, Extend:=wdExtend 
    With Selection.Font 
     .NameFarEast = "+Body Asian" 
     .NameAscii = "+Body" 
     .NameOther = "+Body" 
     .Name = "+Body" 
     .Size = 11 
     .Bold = False 
     .Italic = False 
     .Underline = wdUnderlineNone 
     .UnderlineColor = wdColorAutomatic 
     .StrikeThrough = False 
     .DoubleStrikeThrough = False 
     .Outline = False 
     .Emboss = False 
     .Shadow = False 
     .Hidden = False 
     .SmallCaps = False 
     .AllCaps = False 
     .Color = wdColorAutomatic 
     .Engrave = False 
     .Superscript = False 
     .Subscript = False 
     .Spacing = 0 
     .Scaling = 100 
     .Position = 0 
     .Kerning = 0 
     .Animation = wdAnimationNone 
     .DisableCharacterSpaceGrid = False 
     .EmphasisMark = wdEmphasisMarkNone 
     .Ligatures = wdLigaturesNone 
     .NumberSpacing = wdNumberSpacingDefault 
     .NumberForm = wdNumberFormDefault 
     .StylisticSet = wdStylisticSetDefault 
     .ContextualAlternates = 0 
    End With 
End Sub 
+0

隐藏的文本必须在屏幕上可见才能选择。所以你在你的代码中需要这样的代码: 'ActiveDocument.ActiveWindow.View.ShowHiddenText = True' 但是,你可能不能让用户通过'Application.ScreenUpdating = False'在代码的开头看到它们。虽然没有测试过。 – Masoud

+0

@masoud添加'ActiveDocument.ActiveWindow.View.ShowHiddenText = True'的作品!我从来没想过这点。虽然我不确定'Application.ScreenUpdating = False'。 –

+0

https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 – Masoud

回答

1

隐藏的文本必须在屏幕上可见才能被选中。所以你需要在你的代码中。你不需要隐藏它们;

ActiveDocument.ActiveWindow.View.ShowHiddenText = True 

如果您希望用户在运行时看不到文本,可能会执行此操作。但是,它没有经过测试;

Application.ScreenUpdating = False 

记得在代码结束时重新打开它;

Application.ScreenUpdating = True