2010-12-16 148 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