2011-12-17 87 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