Seleccionar mediante VBA sólo las cifras de un string que tiene cifras y texto

Anónimas
2011-10-25T20:53:09+00:00

¿Cómo se puede seleccionar mediante VBA sólo las cifras de un string que tiene cifras y texto?

Por ejemplo si tengo el siguiente string:

" En el año 1997 se escribió un libro de 781 páginas que se vendía en 39 dólares"

Quiero seleccionar primero la cifra 1994, después seleccionar 781 y luego seleccionar 39.

Todo ello por código.

¿Será posible?

Saludos

Francesca

Microsoft 365 y Office | Excel | Para la casa | Windows

Pregunta bloqueada. Esta pregunta se migró desde la Comunidad de Soporte técnico de Microsoft. Puede votar si es útil, pero no puede agregar comentarios o respuestas ni seguir la pregunta.

0 comentarios No hay comentarios

43 respuestas

Ordenar por: Muy útil
  1. Anónimas
    2012-02-17T17:12:05+00:00

    ¿Le ha resultado útil esta respuesta?

    0 comentarios No hay comentarios
  2. Anónimas
    2011-11-29T00:36:36+00:00

    Hola Héctor

    Claro que sí, es exactamente como tu dices.

    Sin tus "tips" nunca lo habría logrado.

    Te estoy muy agradecida

    Saludos y hasta una próxima... si aún me vas a tener paciencia.

    Francesca

    ¿Le ha resultado útil esta respuesta?

    0 comentarios No hay comentarios
  3. Héctor Miguel 71,595 Puntos de reputación
    2011-11-28T21:40:56+00:00

    ... me concentré hasta casi sacar humo de mi cabeza hasta que finalmente dí con la respuesta a mi pregunta clave: "No logro entender por qué si tengo una selección, el código me procesa cifras que NO ESTÁN EN LA SELECCIÓN."

    En la línea 48 cambié With Selection.Find por With Selection.Range.Find

    y en la línea 58 cambié .Execute Replace:=wdReplaceAll por .Execute Replace:=wdReplaceOne

    Con eso he logrado que los reemplazos se efectúen número por número y sólo en la selección y no en todo el documento.

    hola, Francesca !

    (probablemente) en algun lado "nos perdimos" (entre tantas lineas de codigo ?), pero, en los dos ultimos mensajes te señalaba DOS "puntos clave" (que son los que encontraste)...

    en noviembre 11:

    prueba con la siguiente macro, tiene algunos cambios "clave", p.e. he cambiado:

    1) los "With Selection.Find" <=> por "With Selection.Range.Find"

    2) los "wdReplaceAll" <=> por "wdReplaceOne"

    en noviembre 18:

    1) el siguiente codigo me ha servido para procesar solo en el texto seleccionado (varios parrafos o solo parte de alguno), por lo que te recalco algunos cambios "clave" mencionados en correo anterior:

    a) cambiar los wdReplaceAll <=> por wdReplaceOne (no te preocupes, el wdReplaceAll lo almacena la colecion de patrones encontrados por las expresiones regulares)

    b) cambiar los Selection.Text <=> por Selection.Range.Text (el Selection.Text podria cambiar si algun patron es "localizado" -en error- por el .Find de word ?)

    me da gusto que los hayas descubierto, ya que eso significa que (en verdad) analizaste los pormenores del funcionamiento del ".Find" (de word) y no te quedaste con dudas ;)

    saludos,

    hector.

    ¿Le ha resultado útil esta respuesta?

    0 comentarios No hay comentarios