macro vba Substitui todos os símbolos antes ou depois de um definido

0

Por favor, ajude-me a descobrir onde está o meu erro.

Eu tenho uma string 80/120 na célula A1 e quero criar uma variável, substituir todos os símbolos antes de "/" (incluindo "/") e colocá-la na célula B1.

Sub secondmacro()
Dim ReplaceSmth As Variant

ReplaceSmth = Cells(1, 1)
ReplaceSmth = Replace(ReplaceSmth, "*/", "")
Cells(1, 2) = ReplaceSmth

End Sub

Não consigo descobrir por que isso não muda nada e obtenho o valor 80/120 em B1

O LPChip me deu uma ótima ideia de como fazer isso!

Modifico seu código um pouco para atender às minhas necessidades:

Sub secondmacro()

 Dim ReplaceSmth As Variant, CellPosition As Integer

  ReplaceSmth = Cells(1, 1)
  CellPosition = InStr(1, ReplaceSmth, "/")


If CellPosition <> 0 Then Cells(1, 2) = Mid(ReplaceSmth, CellPosition + 1, Len(ReplaceSmth))

End Sub

Obrigado!

    
por Andre 19.08.2017 / 23:08

1 resposta

1

Substituir não entende os wildchards. Apenas substitui textos literais. Veja aqui para mais ajuda sobre a função Substituir.

O que você quer fazer é primeiro encontrar a posição do primeiro /, então pegar o texto e configurá-lo para a primeira célula, depois repetir o processo, mas para o texto restante, e colocá-lo na segunda célula. / p>

Sua macro será parecida com esta:

Sub secondmacro()
    Dim ReplaceSmth As text, CellPosition as Integer

    ReplaceSmth = Cells(1, 1)
    CellPosition = InStr (1, ReplaceSmth, "/")

    If CellPosition > 1 then
        Cells(1, 1) = MID(ReplaceSmth, 1, CellPosition)
        Cells(1, 2) = MID(ReplaceSmth, CellPosition, len(ReplaceSmth)-CellPosition)
    end if

End Sub
    
por 19.08.2017 / 23:23

Tags