Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 基于excel中填充的字符串数组在word文档中搜索匹配的关键字_Arrays_Excel_Vba_Ms Word_String Matching - Fatal编程技术网

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文件中的字符串填充字符串数组变量。如何做到这一点?这就是我被卡住的地方。