title: VBA Excel find and replace WITHOUT replacing items already replaced
body: <p>I am looking to make an excel script that can find and replace data, but for the love of everything I cannot figure out how to write it.</p>
  
  <p>Situation:</p>
  
  <blockquote>
    <p>A-----------B-----------C</p>
    
    <p>Cat-------Dog------Banana</p>
    
    <p>Dog------Fish------Apple</p>
    
    <p>Fish------Cat-------Orange</p>
  </blockquote>
  
  <p>So the macro would look at the data in a cell in column B, then look at the adjacent cell in column C, and replace all instances of that data in column A with what if found in C. So the results would be:</p>
  
  <blockquote>
    <p>A---------------B-----------C</p>
    
    <p>Orange------Dog------Banana</p>
    
    <p>Banana------Fish------Apple</p>
    
    <p>Apple--------Cat-------Orange</p>
  </blockquote>
  
  <p>But that's not all, I would like it to not change cells in A that already have been changed once! (I'm trying this with changing the background colour)</p>
  
  <p>Any help? I am at a complete loss.</p>
  
  <p>EDIT:</p>
  
  <p>Okay I found out how to do the easy part (replacing), but I cannot find out how to not change cells that already have been changed once. Here is my code:</p>
  
  <pre><code>Sub multiFindNReplace()
      Dim myList, myRange
      Set myList = Sheets("sheet1").Range("A2:B3") 'two column range where find/replace pairs are
      Set myRange = Sheets("sheet1").Range("D2:D5") 'range to be searched
      For Each cel In myList.Columns(1).Cells
      myRange.Replace what:=cel.Value, replacement:=cel.Offset(0, 1).Value, ReplaceFormat:=True
      Next cel
  End Sub
  </code></pre>
  
  <p>As far as I can tell,     ReplaceFormat:=True
  doesn't do anything ;/ so items that already have been replaced once still are being replaced! Is there a way to somehow make this work?</p>