Word 2007从屏幕上的文档中删除信息

时间:2011-12-17 19:30:25

标签: ms-word word-vba

我正在使用Word中的敏感信息,并希望删除一些违反隐私法规的信息。这个信息是可变的,所以我不能做一个简单的替换。在将文件保存为文本文件并循环浏览文件并将其保存到新文本文件后,我能够从文件中删除该信息。信息出现的行始终以相同的信息开头,因此我用它来触发删除私人信息。理想情况下,我希望能够在不保存文件的情况下执行此操作。我对VBA有点熟悉,但这超出了我的技能水平。

对不起歧义....需要替换的信息是可变的,类似于社会安全号码,因此无法进行简单的搜索和替换。下面提供了一个样本。我要找的是当行的开头包含ID#时,ID号的前4个字符要么x出或用空格替换。为了识别目的,最后三个字符仍然可见。

-INQFS-07A-26-------------------------------------DATE:111018-162442-

ID#: XXXXXXX  NAME: XXXXXX, XXXX                     LOCATION : XXXXXXXXXXXXXXXXXXXXXXXXX             NUMBER : XXX      PAGE:    1

   --------------C U R R E N T --------------     OPENING BALANCE      --------------S A V I N G S  --------------  C A N T E E N   

     CASH            HOLDS       FREE BALANCE                            CASH            HOLDS       FREE BALANCE                   

     306.52          7.50              299.02      DATE  11/10/11        91.68           0.00              91.68        90.00       

1 个答案:

答案 0 :(得分:0)

这似乎做了我想做的事。

Sub MaskIDNUM()
'
' MaskIDNUM Macro
' Blank out first four characters of the ID# in a printout
'
    Selection.WholeStory
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "ID#: ????"
        .Replacement.Text = "ID#     "
        .Forward = True
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub