Here is an example on data in column 1, with text (no formulas):
Sub test()
Dim CL As Range
Dim POS As Long, Before As Long, After As Long
For Each CL In Sheets(1).UsedRange.Columns(1).Cells
POS = 0
If InStr(1, CL.Text, "@gmail.com") > 0 Then POS = InStr(1, CL.Text, "@gmail.com")
If InStr(1, CL.Text, "@yahoo.com") > 0 Then POS = InStr(1, CL.Text, "@yahoo.com")
If POS > 0 Then
Before = InStrRev(CL.Text, ";", POS)
After = InStr(POS, CL.Text, ";")
With CL.Characters(Start:=Before + 1, Length:=After - (Before + 1)).Font
.FontStyle = "Bold"
End With
End If
Next CL
End Sub
Maybe not the most elegant and waterproof solution....
Outcome:
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…