从Visual Basic中的字符串中删除重复值

1 vba

在Visual Basic中,如果我有一串数字可以说("1,2,3,4,5,2,2"),我怎么能删除重复的值,只留下第一个实例,所以字符串说("1 ,2,3,4,5" ).

tig*_*tar 6

这是一个可以用来重复删除字符串的函数,如您所述.请注意,这不会对重复数据删除的字符串进行排序,因此,如果您的字符串类似于"4,2,5,1,3,2,2",则结果将为"4,2,5,1,3".你没有指定你需要它排序,所以我没有包括该功能.请注意,,如果未指定,该函数将用作默认分隔符,但如果选择,则可以指定分隔符.

Function DeDupeString(ByVal sInput As String, Optional ByVal sDelimiter As String = ",") As String

    Dim varSection As Variant
    Dim sTemp As String

    For Each varSection In Split(sInput, sDelimiter)
        If InStr(1, sDelimiter & sTemp & sDelimiter, sDelimiter & varSection & sDelimiter, vbTextCompare) = 0 Then
            sTemp = sTemp & sDelimiter & varSection
        End If
    Next varSection

    DeDupeString = Mid(sTemp, Len(sDelimiter) + 1)

End Function
Run Code Online (Sandbox Code Playgroud)

以下是您将如何调用它的一些示例:

Sub tgr()

    MsgBox DeDupeString("1,2,3,4,5,2,2")    '--> "1,2,3,4,5"

    Dim myString As String
    myString = DeDupeString("4-2-5-1-3-2-2", "-")
    MsgBox myString     '--> "4-2-5-1-3"

End Sub
Run Code Online (Sandbox Code Playgroud)