codice:
Function Parte(Var As Variant, Index As Integer, Sep As String) As String
    ' --- Routine ritorna la parte della stringa passata in var
    '     avendo il carattere di separazione passato in Sep e il numero di
    '     campo di ritorno passato in index
    '     se ritorna Var=null passato qualcosa che non va
    '
    Dim Passa As Variant
    Dim posto As Long
    Dim ini   As Integer
    Dim PostoM  As Long
    Dim MaxSegna As Long
    Dim a   As Long
    Dim Iniziale    As Integer
    Dim Finale  As Integer
    Dim Uscita As String
    
    Passa = Var
    If Passa = "" Or IsNull(Passa) Or Index < 1 Then
       Parte = -1
       Exit Function
    End If
    ' controllo se esiste il carrattere separatore cercato
    posto = 0
    posto = InStr(Passa, Sep)
    If posto < 1 Then
        Parte = -1
        Exit Function
    End If
    posto = 0: ini = 1: PostoM = 0: MaxSegna = 0
    '-- controllo per quanti sono i segnaposto
    For a = 1 To Len(Passa)
        posto = 0
        posto = InStr(ini, Passa, Sep)
        If posto > 0 Then
            ini = posto + 1
            MaxSegna = MaxSegna + 1
        End If
    Next
    If Index > (MaxSegna + 1) Then
        Parte = -1
        Exit Function
    End If
    Iniziale = 1: posto = 0: Finale = 0: ini = 1
    For a = 1 To Index
        posto = InStr(ini, Passa, Sep)
        If posto > 0 Then
            Finale = posto ' - 1
            ini = posto + 1
            If a = (Index - 1) Then
                Iniziale = posto ' + 1
            End If
            posto = 0
        End If
    Next
    ' determinare quanti caratteri è lungo il campo da recuperare
    Uscita = ""
    Select Case Index
        Case 1
            Uscita = Trim(Left(Passa, Finale - 1))
        Case Is = (MaxSegna + 1)
            Uscita = Trim(Mid$(Passa, Finale + 1))
        Case Else
            Uscita = Trim(Mid$(Passa, Iniziale + 1, (Finale - (Iniziale + 1))))
    End Select
    ' Normalizzazione di Uscita
    Uscita = Trim(Uscita)
    If Uscita = Sep Or Uscita = "" Then
        Uscita = "  "
    End If
    Parte = Uscita
End Function
usa questa routine