Shelley Lou, I have two ideas.
Idea 1: try replacing the appropriate part of your code with this:
Code:
Dim sStr As String
Select Case InStr(oRngEval, sStr) = 1
Case sStr = "-" 'highlights if cross refs seperated by a dash e.g. clause 1-2
oRng.Move wdCharacter, 1
lngOffset = 0
Case sStr = ", " 'highlights if cross refs seperated by a comma e.g. clause 1, 2
oRng.Move wdCharacter, 2
lngOffset = 0
Case sStr = " - " 'highlights if cross refs seperated by a dash and space either side e.g. clause 1 - 2 THIS CURRENTLY DOESN'T WORK
oRng.Move wdCharacter, 3
lngOffset = 3
Case sStr = " or " 'highlights if cross refs seperated by the word 'or' e.g. clause 1 or 2
oRng.Move wdCharacter, 4
lngOffset = 4
Case sStr = " to " 'highlights if cross refs seperated by the word 'to' e.g. clause 1 to 2
oRng.Move wdCharacter, 4
lngOffset = 4
Case sStr = " and " 'highlights if cross refs seperated by the word 'and' e.g. clause 1 and 2
oRng.Move wdCharacter, 5
lngOffset = 5
Case sStr = " and/or " 'highlights if cross refs seperated by the word 'and/or' e.g. clause 1 and/or 2
oRng.Move wdCharacter, 8
lngOffset = 8
Case Else
bCompound = False
End Select
Idea 2: Probably, the dash in the text and the dash the code is looking for are actually different dashes (they have different codes), though they look identical.
To find out the dashes' codes, select them and then use AscW(selection).