¿Cómo Cortar cadenas de caracteres con macros?

Tengo una consulta, como puedo eliminar los caracteres sobrantes en una celda como en este ejemplo
450,00base21tresmesesdespues
Necesito quedarme solo con los 450,00
Pero este numero puede ser mayor ejemplo
20485792,00base21tresmesesdespues
Aquí necesito solo los 20485792,00
Esto lo estoy haciendo con macros

Respuesta
1

Ho la Jose.

Visita:

Macros y Excel


Prueba:

Sub extraenumero()
  Dim num As String
  With Range("C3")
    num = Left(.Value, InStr(1, .Value, ",") + 2)
  End With
  MsgBox num
End Sub


https://m.youtube.com/watch?v=fkMDV64YyE0 


Te puede interesar:

https://m.youtube.com/watch?v=PupmVvM16-8&t=9s 

Sal u dos

Dante Amor

2 respuestas más de otros expertos

Respuesta
3

Pruebe con:

IZQUIERDA(A1;ENCONTRAR(",";A1)+2)
Respuesta
1

Para cortar cadenas de caracteres en una macro de Excel y quedarte solo con la parte que necesitas, puedes utilizar la función "Left" o "Mid" junto con la función "InStr" para buscar una cadena específica y luego extraer una subcadena a partir de esa posición.

Aquí te muestro un ejemplo de cómo puedes hacerlo en VBA:

Sub CortarCadena()
    Dim cadena As String
    Dim posicion As Integer
    Dim resultado As String
    cadena = Range("A1").Value ' Asume que la cadena de texto está en la celda A1
    posicion = InStr(1, cadena, "base21") ' Busca la posición de la cadena "base21"
    If posicion > 0 Then ' Si se encontró la cadena
        resultado = Left(cadena, posicion - 1) ' Extrae la subcadena desde el principio hasta la posición anterior a "base21"
    Else
        resultado = cadena ' Si no se encontró la cadena, el resultado será la cadena completa
    End If
    Range("B1").Value = resultado ' Escribe el resultado en la celda B1
End Sub

La cadena original se encuentra en la celda A1 y el resultado se escribirá en la celda B1. La macro busca la posición de la cadena "base21" dentro de la cadena original utilizando la función "InStr". Si se encuentra la cadena, se utiliza la función "Left" para extraer la subcadena desde el principio hasta la posición anterior a "base21". Si no se encuentra la cadena, el resultado será la cadena completa.

Muchas gracias por la respuesta, ahora la parte de base21 no es algo fijo varía lo único que si siempre está presente es la "," 

Sub CortarCadena()
    Dim cadena As String
    Dim posicion As Integer
    Dim resultado As String
    cadena = Range("A1").Value ' Asume que la cadena de texto está en la celda A1
    posicion = InStr(1, cadena, ",") ' Busca la posición de la coma
    If posicion > 0 Then ' Si se encuentra la coma
        resultado = Left(cadena, posicion - 1) ' Extrae la subcadena desde el principio hasta la posición anterior a la coma
    Else
        resultado = cadena ' Si no se encuentra la coma, el resultado será la cadena completa
    End If
    Range("B1").Value = resultado ' Escribe el resultado en la celda B1
End Sub

En este caso, la macro buscará la posición de la coma utilizando la función "InStr". Si se encuentra la coma, se utilizará la función "Left" para extraer la subcadena desde el principio hasta la posición anterior a la coma. Si no se encuentra la coma, el resultado será la cadena completa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas