Las siguientes dos funciones de Microsoft devuleven por separado los valores de una cadena que estén contenidos entre comas. Las funciones está escritas para extraer únicamente valores separados por coma, pero puede modificarse fácilmente para extraer valores que estén separados por cualquier otro carácter.
‘******************* Inicio del código ****************
Function CountCSWords(ByVal s) As Integer
‘Cuenta las palabras de una cadena que estén separadas por comas.
Dim WC As Integer, Pos As Integer
If VarType(s) <> 8 Or Len(s) = 0 Then
CountCSWords = 0
Exit Function
End If
WC = 1
Pos = InStr(s, “,”)
Do While Pos > 0
WC = WC + 1
Pos = InStr(Pos + 1, s, “,”)
Loop
CountCSWords = WC
End Function
Function GetCSWord(ByVal s, Indx As Integer)
‘Devulve el número de palabras de un campo
Dim WC As Integer, Count As Integer
Dim SPos As Integer, EPos As Integer
WC = CountCSWords(s)
If Indx < 1 Or Indx > WC Then
GetCSWord = Null
Exit Function
End If
Count = 1
SPos = 1
For Count = 2 To Indx
SPos = InStr(SPos, s, “,”) + 1
Next Count
EPos = InStr(SPos, s, “,”) – 1
If EPos <= 0 Then EPos = Len(s)
GetCSWord = Trim(Mid(s, SPos, EPos – SPos + 1))
End Function
Esta en la forma de utilizar la función anterior, obteniendo los valores separados por comas de la cadena strAString.
Sub Test()
Dim strAString As String
Dim I As Integer
Dim intCnt As Integer
strAString = “This,calls,the,two,functions,listed,above”
‘Encuentra cuantas comas separan las palabras
intCnt = CountCSWords(strAString)
‘Llama a otra función para repertirla en cada turno
For I = 1 To intCnt
Debug.Print GetCSWord(strAString, I)
Next
End Sub
‘*******************Fin de código****************
Fuente: The Access Web