2010-12-16 140 views
1

我每週都會創建一個多頁的單詞文檔。我從PDF複製文本並將其粘貼到Word文檔中,然後格式化我粘貼的文本。使用VBA單詞選擇文本並將其設爲粗體

這需要很長時間,我想自動化它。

我需要一個宏或一些代碼來選擇特定的文本,然後使該文本加粗。我需要加粗的具體文字就是我所說的廢品代碼。

有60個不同的代碼。例如「FIPS」或「LILL」。

回答

3

事情是這樣的:

Sub A() 
' 
' a Macro 
' 
' 
Dim A(3) As String 

A(1) = "code1" 
A(2) = "code2" 
A(3) = "code3" 

For i = 1 To 3 
    Selection.Find.ClearFormatting 
    Selection.Find.Replacement.ClearFormatting 
    With Selection.Find 
     .Forward = True 
     .Wrap = wdFindStop 
     .Format = False 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchWildcards = False 
     .MatchSoundsLike = False 
     .MatchAllWordForms = False 
     .Replacement.Font.Bold = True 

     .Execute FindText:=A(i), ReplaceWith:=A(i), Format:=True, _ 
     Replace:=wdReplaceAll 

    End With 
Next i 
End Sub 

HTH!

編輯

要切換的美元金額,以大膽

Sub a() 
' 
' a Macro 
' 
' 
    Selection.Find.ClearFormatting 
    Selection.Find.Replacement.ClearFormatting 
    Selection.Find.Replacement.Font.Bold = True 
    With Selection.Find 
     .Text = "$([0-9.,]{1,})" 
     .Replacement.Text = "" 
     .Forward = True 
     .Wrap = wdFindContinue 
     .Format = True 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchAllWordForms = False 
     .MatchSoundsLike = False 
     .MatchWildcards = True 
    End With 
    Selection.Find.Execute 
    Selection.Find.Execute Replace:=wdReplaceAll 
End Sub 
+0

完美的工作!你是最好的謝謝你。 – Aaron 2010-12-16 20:43:18

+0

還有一件事。我想在同一份文件上大膽地使用美元。我可以讓它尋找一個美元符號,然後選擇,直到文檔中有空格嗎?文件上的每一美元金額都以一個美元符號開始,所以我想找那個將是一件容易的事情。 – Aaron 2010-12-16 20:51:29

+0

@Aaron在「美元符號」上工作...... – 2010-12-16 21:20:22

0

我會建議錄製一個宏。
然後進行所有修改和格式化。
最後,看看宏的代碼,看看它是如何做到的。

你需要弄清楚的一件事是你如何邏輯上想要找到你想要加粗的文本。
它是一個特定的行嗎?它是否在一個已知單詞的開頭?

一旦你有了答案,你可以將它與宏的代碼結合起來並使任務自動化。

+0

我想製作一個字符串數組與每個廢料碼的。也許我可以使用find replace來查找文檔中的每個廢料代碼,然後使其變爲粗體。 昏暗ScrapCodes作爲字符串()=「所有廢料碼 昏暗計數器爲整數= 0 做,直到計數器>」碼 「的數量使用計數器來調用每個廢料代碼陣列 在」尋找廢料代碼 '使廢品代碼大膽 '加1到櫃檯 結束 從我編程已經很長一段時間了,但這正是我所想的是有道理的。 – Aaron 2010-12-16 05:34:54

相關問題