2011-12-17 86 views
0

我正在使用Word中的敏感信息,并希望删除一些违反隐私法规的信息。这个信息是可变的,所以我不能做一个简单的替换。在将文件保存为文本文件并循环遍历文件并将其保存到新的文本文件后,我能够从文件中删除信息。信息出现的行总是以相同的信息开始,所以这就是我用来触发删除私人信息的行为。理想情况下,我希望能够在不保存文件的情况下做到这一点。我有点熟悉VBA,但目前这超出了我的技能。Word 2007从屏幕上的文档中删除信息

不好意思......需要替换的信息是可变的,类似于社会安全号码,因此简单的搜索和替换是不可能的。下面提供了一个示例。我正在寻找的是当行的开头包含ID#时,ID编号的前4个字符将被删除或替换为空白。为了识别目的,最后三个字符仍然可见。

 
-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  
+0

在一句话中,你说它是可变的,在下一次你说它发生在完全相同的地方。这是什么? – 2011-12-17 19:40:52

+0

请提供您试图找到并删除的文字的几个(清理过的)示例。否则你的问题太笼统,无法回答。 – 2011-12-17 21:41:16

回答

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 
+0

感谢您对该Dave的编辑 – user1103810 2011-12-19 01:46:39