Pregunta

Me gustaría analizar una columna de células de cadenas en Excel VBA, cada una de las células contiene lo siguiente:

2 '␂'

Me gustaría cambiar el contenido de esta celda para contener sólo el 2 (o los caracteres numéricos justo antes de la 'cadena'. ¿Cuál sería el método más fácil de analizar dicha información? Gracias.

¿Fue útil?

Solución

Si está seguro acerca del formato, encontrar la cadena antes de que el '(apóstrofe) y cambiar el valor de la celda. Suponiendo que usted está en la celda que tiene este valor, utilice el siguiente código VBA.

activecell.text = mid(activecell.text, 1, instr(1, activecell.Text, "'")-1)

Se busca un apóstrofe y extrae caracteres antes y lo coloca en la celda actual.

Otros consejos

Si se asume que los datos numéricos siempre está al inicio de la célula, puede utilizar expresiones regulares para encontrar números consecutivos al comienzo de la cadena, parando una vez que golpea los primeros caracteres no numéricos. Aquí es una función que lo hará por usted, espero que ayude. El ^ sinónimo de inicio de la célula, y (\ d +) significa que uno o más caracteres numéricos y el. * Significa seguido de cero o más caracteres. Estoy asumiendo que sólo hay una serie de números que necesita, por lo que tengo la expresión regular simplemente volver subcoincidencia 0 (primer partido).

Function ExtractNumericData(ByVal text As String) As String

Application.ScreenUpdating = False
Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")

RE.Pattern = "^(\d+).*"
RE.Global = True
Set allMatches = RE.Execute(text)
ExtractNumericData = allMatches.Item(0).submatches.Item(0)
Application.ScreenUpdating = True

End Function
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top