Arrays 基于excel中填充的字符串数组在word文档中搜索匹配的关键字
程序应该做什么?Arrays 基于excel中填充的字符串数组在word文档中搜索匹配的关键字,arrays,excel,vba,ms-word,string-matching,Arrays,Excel,Vba,Ms Word,String Matching,程序应该做什么? 我有两个档案;一个Word文件和一个Excel文件。Word文件包含一些文本。Excel文件包含已定义的字符串。我试图实现的是创建一个VBA程序,该程序将连接到相同或不同目录中的Excel文件,并从Excel文件的两列中获取数据,并将它们临时存储在多维数组中。然后,该数组将用于搜索文档中匹配的单词并突出显示它们 我迄今为止所取得的成就 我已经找到了从word文档中的数组中查找匹配单词并突出显示它们的代码。我仍在努力解决的是如何连接到Excel文件以动态填充此数组 这是我目前的代
我有两个档案;一个Word文件和一个Excel文件。Word文件包含一些文本。Excel文件包含已定义的字符串。我试图实现的是创建一个VBA程序,该程序将连接到相同或不同目录中的Excel文件,并从Excel文件的两列中获取数据,并将它们临时存储在多维数组中。然后,该数组将用于搜索文档中匹配的单词并突出显示它们 我迄今为止所取得的成就
我已经找到了从word文档中的数组中查找匹配单词并突出显示它们的代码。我仍在努力解决的是如何连接到Excel文件以动态填充此数组 这是我目前的代码:
Sub HighlightMatches()
Dim range As range
Dim i As Long
Dim wordsArray
wordsArray = Array("Lion", "Hello", "Cat", "Lorem Ipsum")
For i = 0 To UBound(wordsArray)
Set range = ActiveDocument.range
With range.Find
.Text = wordsArray(i)
.Format = True
.MatchCase = True
Do While .Execute(Forward:=True) = True
range.HighlightColorIndex = wdYellow
Loop
End With
Next
End Sub
我将非常感谢您关于如何以最佳方式实现这一目标的想法。这是否符合您的要求
Sub HighlightMultipleWords()
Dim sArr() As String
Dim rTmp As Range
Dim x As Long
sArr = Split("Cat Bat Rat") ' YOUR ARRAY OF WORDS
Options.DefaultHighlightColorIndex = wdYellow
For x = 0 To UBound(sArr)
Set rTmp = ActiveDocument.Range
With rTmp.Find
.Text = sArr(x)
.Replacement.Text = sArr(x)
.Replacement.Highlight = True
.Execute Replace:=wdReplaceAll
End With
Next
End Sub
感谢您的回复@ryguy72,但我认为您的VBA代码属于excel,但我正在尝试用VBA Word创建此程序。实际上,当我从Word VBEditor测试代码时,Word不存在“GetOpenFilename”方法,因此我认为这不会起作用,但如果您有其他想法,我仍在寻找。谢谢。哦,我想我现在明白了。我更新了我原来的帖子。试试代码。它能做你想要的吗?谢谢你的时间@ryguy72,但问题是我们如何用excel文件中的字符串填充字符串数组变量。如何做到这一点?这就是我被卡住的地方。