Q:

Excel Error #Value when executing VBA function

I've build a simple function to collect some values from a string. Example string would be "abc(1.1);abc(1.2);bac(1.3)". The goal is to get values and sum them up in the end and return them as the result. Msgbox about "valor"(the total sum) works great and shows the correct value. But I get and #Value error on the cell when using this function. Can you help me understand why?
Function Organize(CellRef As String) As Double

Dim i As Integer
Dim lentotal As Long
Dim inicio As Long
Dim fim As Long
Dim a As Long
Dim valor As Double
Dim check As String
a = 1
x = CellRef
lentotal = Len(x)

i = Len(x) - Len(Replace(x, ";", ""))
Dim tech(1 To 100) As Double

Do While a <= i + 1
    inicio = InStr(x, "(")
    fim = InStr(x, ")")

    'MsgBox Replace((Mid(x, inicio + 1, fim - inicio - 1)), ".", ",")
    tech(a) = Replace((Mid(x, inicio + 1, fim - inicio - 1)), ".", ",")
    If Left(x, 4) = "ABC" Then
        valor = valor + tech(a)
    End If

    If a > i Then
        MsgBox valor
        Organize = valor
        End
    Else
        x = Right(x, Len(x) - fim - 1)
    End If

    a = a + 1
Loop

End Function

A:

Try using Exit Function instead of End.

