title: Using Find.Execute within a loop in Word
body: <p>So I have a range which I have set, let's call it <code>myRange</code>. I also have an array of short strings, let's call it <code>searchArray</code>.</p>
  
  <p>I want to search within <code>myRange</code> for all instances of each of the strings, and change the text color.</p>
  
  <p>The issue I am having is how to reset the range each time after executing the search.</p>
  
  <p>This what I am currently attempting:</p>
  
  <pre><code>Dim searchRange as Range
  
  For i = 1 to UBound(searchArray)
    Set searchRange = myRange
    With searchRange.Find
      .Text = searchArray(i)
      .Forward = True
      .Wrap = wdFindStop
      .Execute
  
      While .Found
        .Parent.Font.Color = RGB(20,20,20)
        .Execute
      Wend
    End With
  Next i
  </code></pre>
  
  <p>However, executing the find not only changes <code>searchRange</code> but also <code>myRange</code>, so that when I loop back I am not searching what I want.</p>
  
  <p>How can I reset <code>searchRange</code> to be the original <code>myRange</code> on each loop?</p>