Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.8k views
in Technique[技术] by (71.8m points)

vba - Clear Formatting for a Range, not the Selection

The ClearFormatting method only works with the Selection object. Can I clear formats of a range without losing the selection, and ideally without caching it and calling Select. I'd like to clear formats for a Range

I've tried some combinations of Find/Replace, e.g.

Sub ClearFormat(ByVal doc As Document)
    'doc.Content.Find.ClearFormatting  'WdStoryType.wdMainTextStory
    Dim target As Range
    Set target = doc.Content
    With target.Find
        .Replacement.Font.Name = "Regular" 'hoping this will resent to my normal style
        .MatchWildcards = True
        .Execute "*", Replace:=wdReplaceAll
    End With
End Sub

And also setting the whole document style to the "Normal" style, but no joy


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

For example:

With ActiveDocument.Range
  .ParagraphFormat.Reset
  .Font.Reset
End With

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...