Macros para extraer palabras especificas de un String

Tengo un archivo que se llama Informe_Noviembre2014_preliminar . Por medio de una macro he extraído el nombre del archivo y lo he guardado en una variable. Ahora lo que necesito es sacar la palabra Noviembre, y también el año y guardarlo en otra variable.

2 respuestas

Respuesta
1

Parece que hay problemas en la página. Es la tercera vez que te lo envío. A ver si ahora.

Sub extraer_Año_y_Mes()
año = Mid(nom, InStr(1, nom, "2"), 4)
mes = Mid(nom, InStr(1, nom, "_") + 1, InStr(1, nom, "2") - InStr(1, nom, "_") - 1)
End Sub

Cambia nom, por el nombre de tu variable donde guardas el nombre del fichero.

Si te ha valido la respuesta.

Muchas gracias, funciona muy bien para el año. Aun tengo un  problema con el mes. Me falto algo en el nombre del texto. El texto es Informe_IVT_Noviembre2014_preliminar, por lo que algo pasa que no entrega solo el mes, si no que agrega más partes del texto

¿El nombre del fichero siempre va a comenzar por "Informe_IVT_"?

Si

Si es así, pon lo siguiente

Sub extraer_Año_y_Mes()
año = Mid(nom, InStr(1, nom, "2"), 4)
mes = Mid(13, InStr(1, nom, "2") - InStr(1, nom, "_") - 1)
End Sub

Si te ha valido la respuesta.

Sub extraer_Año_y_Mes()
año = Mid(nom, InStr(1, nom, "2"), 4)
mes = Mid(nom,13, InStr(1, nom, "2") - InStr(1, nom, "_") - 1)
End Sub

¡Gracias!  

Funciono muy bien! :)

Perdona, hoy tengo un día espeso, será que es lunes...

Sub extraer_Año_y_Mes()
año = Mid(nom, InStr(1, nom, "2"), 4)
mes = Mid(13, InStr(1, nom, "2") - 13)
End Sub
Respuesta
1

Suponiendo que su variable "Informe_Noviembre2014_preliminar " está en la celda A1, entonces escribe en otra celda

=EXTRAE(A1;ENCONTRAR("_";A1)+1;ENCONTRAR("_";A1;ENCONTRAR("_";A1)+1)-ENCONTRAR("_";A1)-1)

Si esto lo querés hacer por código, también lo podés hacer de manera equivalente. La función extraer la podés reemplazar por Mid, y si bien no hay una función VBA que reemplace la función Encontrar, sí podés usar Application. WorksheetFunction. Find

En lugar de Application. WorksheetFunction. Find puedes usar la instrucción VBA Instr

Saludos

Gustavo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas