Hola a todos!!
Tengo el siguiente código:
Código vb:
Ver originalFunction Comprime(Cadena As String) As String
Dim Matriz1() As String
Dim Matriz2() As String
Dim Cadena1 As String
Dim Cadena2 As String
Dim F As Long
Matriz1 = Split(Cadena, ";")
ReDim Matriz2(0)
Matriz2(0) = Matriz1(0)
For F = 1 To UBound(Matriz1)
Cadena1 = Left$(Matriz1(F), InStrRev(Matriz1(F), ":"))
Cadena2 = Left$(Matriz2(UBound(Matriz2)), InStrRev(Matriz2(UBound(Matriz2)), ":"))
If Cadena1 = Cadena2 Then
Matriz2(UBound(Matriz2)) = Cadena1 & Val(Right$(Matriz2(UBound(Matriz2)), _
Len(Matriz2(UBound(Matriz2))) - Len(Cadena1))) + Val(Right$(Matriz1(F), _
Len(Matriz1(F)) - Len(Cadena1)))
Else
ReDim Preserve Matriz2(UBound(Matriz2) + 1)
Matriz2(UBound(Matriz2)) = Matriz1(F)
End If
Next F
Comprime = Join(Matriz2, ";")
End Function
El cual me sirve para hacer este tipo de cosas:
MsgBox Comprime("1:11:26:1;1:22:60:1;1:8:18:1;1:8:18:1;1: 8:18:1")
Resultado: 1:11:26:1;1:22:60:1;1:8:18:3
Apliación de sumas:
MsgBox Comprime("1:11:26:1;1:22:60:1;1:8:18:1;1:8:18:2;1: 8:18:1")
Resultado: 1:11:26:1;1:22:60:1;1:8:18:4
Me suma el último dígito de las subcadenas REPETIDAS. Lo que quiero es me me sume no sólo el último número sino los tres últimos
La idea es esta:
Para: 1:11:26:1;1:22:60:1;
1:8:18:1;1:8:18:1;1: 8:18:1
Salida: 1:11:26:1;1:22:60:1;
1:24:54:3
Muchas gracias a todos!!!