Option ExplicitPrivate Sub RichTextSearch(ByVal objName As RichTextLib.RichTextBox, ByVal strSearchText As String, Optional ByVal clrSelColor As stdole.OLE_COLOR = vbBlue)
Dim lngTmp As Long, lngPos As Long, strTmp As String, intLength As Integer    Screen.MousePointer = vbHourglass
    objName.SelStart = 0
    objName.SelLength = Len(objName.Text)
    objName.SelColor = vbBlack
    objName.SelLength = 0
    strTmp = objName.Text
    If Trim(strSearchText) <> Empty And strTmp <> Empty Then
        intLength = Len(strSearchText)
        lngTmp = InStr(1, strTmp, strSearchText)
        lngPos = lngTmp
        Do While lngTmp > 0
            objName.SelStart = lngPos - 1
            objName.SelLength = intLength
            objName.SelColor = clrSelColor
            strTmp = Mid(strTmp, lngTmp + 1)
            lngTmp = InStr(1, strTmp, strSearchText)
            lngPos = lngPos + lngTmp
        Loop
    End If
    Screen.MousePointer = vbDefault
End SubPrivate Sub Form_Load()
    RichTextBox1.Text = "中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国"
    RichTextSearch RichTextBox1, "中华", vbRed
End Sub
要这种效果是吧?