Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como recorrer una cadena y determinar extension de archivo


.

El objeto del ejemplo que se muestra en este post, es mostrar como recorrer una cadena de texto o string; en este caso se va a recorrer una cadena de caracteres, que tiene como particularidad que es el nombre de un archivo o fichero, tratando de determinar cual es la extensión del archivo, anteriormente se mostró otros ejemplos que quizás sean de utilidad si estás leyendo este post, ellos son: Como recorrer una cadena de caracteres reemplazando mayúsculas por minúsculas o macro que extrae cadenas de texto o string.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  
El ejemplo se puede descargar desde el link del final, en forma totalmente gratuita, es código está abierto y es libre su uso, en el ejemplo se aprenderá a usar funciones de VBA que permiten trabajar con cadenas de texto o string

Len: que permite determinar el largo de una cadena
Mid: que permite extraer texto de una cadena de texto empezando en un determinado lugar y estableciendo la cantidad de caracteres a extraer
Instr: que permite determinar la posición de un carácter o cadena de caracteres
StrReverse: permite dar vuelta una cadena de caracteres
Right: permite extraer datos a la derecha
Left: permite extraer datos a la izquierda
Trim: permite eliminar espacios a la izquierda y derecha de una cadena de texto
LTrim: elimina espacios a la izquierda de una cadena de texto o string
RTrim: elimina espacios a la derecha de una cadena de texto o string

Al descargar el ejemplo se puede observar un listado de nombres de archivos, un botón para ejecutar la macro y otro para borrar; la macro que borra lo que hace es borrar toda la columna B; el botón para ejecutar macro hace un bucle desde la primer a la última fila con datos, en cada fila se va da vuelta la cadena de caracteres con StrReverse es decir que la cadena de texto si originalmente era «xlsm» ahora es «mslx.»; realizado esto se determina donde se encuentra el punto con: Instr determinando donde se encuentra el punto que precede a la extensión del archivo, luego con Mid se extrae desde la posición 1 hasta la posición donde está el punto que fuera determinada con al función Instr, posteriormente se da vuelta la cadena de caracteres y se obtiene la extensión del archivo; hay otras forma de obtener la extensión del archivo, solo se hizo de esta forma para mostrar como trabajar con cadenas o string.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo Recorre fila buscando y comparando datos de dos columnas en hojas distintasbuscar en listbox mientras escribes en textbox, como crear una factura o sale invoice y grabar guardar PDF XLS y enviar por mailconectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}


Otros vídeos que pueden ser de interés:
  

Código que se inserta en un módulo
Sub DeteminaExten()
Dim Tex As Variant, Car As Variant, Lar As Integer
Application.ScreenUpdating = False
On Error Resume Next
Set a = Sheets(«Hoja1»)
uf = a.Range(«A» & Rows.Count).End(xlUp).Row
For x = 2 To uf
cad = StrReverse(a.Range(«A» & x))
Lar = Len(cad)
lug = InStr(cad, «.»)
ext = Mid(cad, 1, lug – 1)
a.Range(«B» & x) = StrReverse(ext)
Next x
Application.ScreenUpdating = True
End Sub

Sub borra()
Range(«B1:B1000»).ClearContents
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends