Excel VBA Inserir caractere entre número e letra

0

Gostaria que algum código do VBA permitisse detectar se uma string contém quaisquer instâncias de um número seguido de uma letra e, em seguida, inserir um novo caractere entre elas. Por exemplo:

O usuário insere a seguinte string:

4x^2+3x

A função retorna:

4*x^2+3*x

Obrigado antecipadamente.

    
por Ben 19.08.2014 / 02:32

1 resposta

0

Isso fará isso:

Sub Button2_Click()
    Range("D5").Value = FixString(Range("B4").Text, "*")
End Sub

Function FixString(sIn As String, sAdd As String) As String
    Dim sOut As String, sChNow As String, _
      nChNow As Integer, nChNext As String, _
      nLen As Integer
    nLen = Len(sIn)
    If nLen > 1 Then
        For i = 1 To nLen - 1
            sChNow = Mid(sIn, i, 1)
            sOut = sOut & sChNow
            nChNow = Asc(sChNow)
            nChNext = Asc(Mid(sIn, i + 1, 1))
            If ((nChNext >= 65 And nChNext <= 90) Or _
               (nChNext >= 97 And nChNext <= 122)) And _
               ((nChNow >= 48 And nChNow <= 57)) Then
                sOut = sOut & sAdd
            End If
        Next i
        FixString = sOut & Right(sIn, 1)
    Else
        FixString = sIn
    End If
End Function

Basta editar a sub rotina Button2_Click () para se adequar à sua situação.

    
por 19.08.2014 / 07:39