Vba 突出显示MS Word文件中的列表单词

Vba 突出显示MS Word文件中的列表单词,vba,excel,ms-word,Vba,Excel,Ms Word,首先,我想说我对VBA一无所知,我想将.txt(或.doc)文件中的单词列表突出显示为充满文本的MS Word文件B.docx。我发现一个VBA代码可以很好地工作,但它需要您在代码中输入单词StrFnd=“dog,cat,pig,horse,man”。你能帮我修改一下吗?代码得到了列表单词文件A.txt,而不是键入这些单词。多谢各位 Sub-HiLightList() Application.ScreenUpdating=False 作为字符串的Dim StrFnd,作为范围的Rng,作为长度

首先,我想说我对VBA一无所知,我想将.txt(或.doc)文件中的单词列表突出显示为充满文本的MS Word文件B.docx。我发现一个VBA代码可以很好地工作,但它需要您在代码中输入单词StrFnd=“dog,cat,pig,horse,man”。你能帮我修改一下吗?代码得到了列表单词文件A.txt,而不是键入这些单词。多谢各位

Sub-HiLightList()
Application.ScreenUpdating=False
作为字符串的Dim StrFnd,作为范围的Rng,作为长度的i
StrFnd=“狗、猫、猪、马、人”
对于i=0到UBound(拆分(StrFnd,“,”))
设置Rng=ActiveDocument.Range
用Rng.Find
.ClearFormatting
.Text=拆分(StrFnd,“,”)(i)
.Replacement.ClearFormatting
.Replacement.Highlight=True
.Replacement.Text=“^&”
.Forward=True
.Wrap=wdFindContinue
.Format=True
.MatchCase=False
.MatchWholeWord=True
.MatchWildcards=False
.MatchSoundsLike=False
.MatchAllWordForms=True
.Execute Replace:=wdReplaceAll
以
下一个
设置Rng=无
Application.ScreenUpdating=True

End Sub
好的,这将查看第一个文档中的单词列表,然后突出显示当前文档中的相同单词

Sub CompareWordList()
  Dim sCheckDoc As String
  Dim docRef As Document
  Dim docCurrent As Document
  Dim wrdRef As Object

sCheckDoc = "C:\highlight\A.txt"
Set docCurrent = Selection.Document
Set docRef = Documents.Open(sCheckDoc)
docCurrent.Activate

With Selection.Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Replacement.Font.Bold = True
    .Replacement.Text = "^&"
    .Forward = True
    .Format = True
    .MatchWholeWord = True
    .MatchCase = True
    .MatchWildcards = False
End With

For Each wrdRef In docRef.Words
    If Asc(Left(wrdRef, 1)) > 32 Then
        With Selection.Find
            .Wrap = wdFindContinue
            .Text = wrdRef
            .Execute Replace:=wdReplaceAll
        End With
    End If
Next wrdRef

docRef.Close
docCurrent.Activate
End Sub

您是否用某种颜色突出显示文件A中的单词,并将这些单词放入文件B?我使用此代码“Alt+F11”>插入模块>粘贴代码并运行F5。我得到的结果是,如果在B文件中有这些单词“dog,cat,…vv”,它将突出显示。问题是我有一长串单词需要在B文件中突出显示。那么您知道如何在不键入列表的情况下运行代码吗。因为我的单字很长,我曾试图将所有的单字复制到代码中,但没有成功。你不太清楚你想要什么。首先,它看起来好像您想要一个文档中突出显示的单词列表,然后在另一个文档中突出显示这些单词。现在你是说你在一个文档中有一个单词列表,你想在另一个文档中突出显示。我对我的英语感到抱歉。让我再说清楚一次。我有一个file.txt,其中包括“猫,狗,车…vv”,还有一个B file.docx(我喜欢猫和狗)。我打开B文件并运行代码,我得到的是猫和狗将突出显示。现在我想让你帮我如何用我发布的代码做到这一点。代码在没有文件的情况下工作,但我想要的是代码在有文件的情况下工作。因为我的文件列表很长。先谢谢你。看看当前的答案你的代码对我来说太难了,运行之后我仍然不明白它如何突出我想要的单词,我不是程序员。我只想从C:\highlight\A.txt获取数据,以替换这行StrFnd=“狗、猫、猪、马、人”。因为列表中的单词太长了,我无法将其放入代码中。我发布的代码运行良好(不是我的代码)。已替换代码。这和你所拥有的很相似,所以应该很容易理解它的工作原理,非常感谢你花时间来帮助我。天啊。我花了一天时间在谷歌上搜索,但找不到解决方案。现在你来帮我了。谢谢。很高兴我能帮上忙。请选择我的答案作为解决方案。是的。非常感谢。祝你一切顺利。