使用VBA进行单词选择文本并使其变为粗体

时间:2010-12-16 02:51:53

标签: vba word-vba

我每周都会制作一个单页文字。我从PDF中复制文本并将其粘贴到word文档中,然后格式化我粘贴的文本。

这需要很长时间,我想自动化它。

我需要一个宏或一些代码来选择特定文本,然后将该文本设为粗体。我需要加粗的具体文字就是我所说的废品代码。

有60种不同的代码。例如“FIPS”或“LILL”。

2 个答案:

答案 0 :(得分:5)

这样的事情:

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

答案 1 :(得分:0)

我建议录制一个宏 然后进行所有修改和格式化 最后,看看宏的代码,看看它是如何做到的。

您需要弄清楚的一件事是您在逻辑上如何找到想要加粗的文本 这是一条特定的路线吗?它是在一个已知单词的开头吗?

一旦你得到答案,你就可以将它与宏的代码结合起来并自动执行任务。