Ci sono!!!

devi fare due cicli che non siano For ma ad esempio do..loop.
Non ti so spiegare bene, ma ti scrivo qui il codice il Vb6. spero che riuscirai a capirlo e a tradurlo.

m = Me.Combo1.ListCount - 1

i = 0
k = 0
Do While i <= m
k = 0
k = k + i
Do While k <= m
If Me.Combo1.List(i) <> "canc" Then
If Me.Combo1.List(k) = Me.Combo1.List(i) Then
If k <> i Then
Me.Combo1.List(k) = "canc"
End If
End If
End If
k = k + 1
Loop
i = i + 1
Loop

For i = 0 To m
If Me.Combo1.List(i) = "canc" Then
Me.Combo1.RemoveItem (i)
End If
Next i

Se non capisci dimmelo e provo a scrivertelo in vc++. (il fatto è che mi trovo meglio con vb6 e vb.net).