Hello Graham,

Nice to see you.

Oh yes this is the exact simple line that makes it easy for me to understand.

 
 If Not UCase(oReplace(i)) = "SKIP" Then

Normally you skip terms on the search, but I didn’t want to split my arrays every time I had to skip a replacement, so it had to be backwards.

Now let me play about with this, because I do have a feeling seeing how useful it is

I may make an array of terms in the replacement to skip. eg

oSkipTerms  = Array("SKIP1", "SKIP2")
 
 If Not UCase(oReplace(i)) = oSkipTerms(j) Then
So it will be array within array


I'll pop back later with my new update

Good Sunday Graham