Ültimamente estoy interiorizandome en EXCEL, razón por la cuál me he fijado una meta que consiste en descubrir toda la potencialidad de esta aplicaación, debido a que he quedado obsoleto con las programaciones de Cobol y Clipper que desarrollaba antiguamente, y que por razones de trabajo dejé de utilizar hace ya varios años. Ahora estoy empeñado en conocer Visual Basic y sacarle un poco provecho para las actividades que desarrollo hoy en día.
Me entretengo viendo foros de Excel y gracias a esos foros he logrado aprender más, pero también he hecho algunos aportes a gente que, al igual que yo, están faltos de información.
Un forista preguntaba lo siguiente:
Como se sabe, el separador entre carpetas es la diagonal invertida (\) y en el c: hay muchas carpetas con distintos nombres ¿Cómo hago para que dada una lista busque la última diagonal invertida y me ponga todo lo que existe después de ésta?
c:\aaa\bbb\ccc\datos.dat |
c:\aaa\bbb\detalle.seq |
c:\aaa\costos.xls |
c:\bbbbbb\dddd\eeee\ffff\gggg\alfabeto.lst |
c:\datos\legal\varios\reporte.dat |
c:\datos\legal\soporte\mezcla.dat |
c:\datos\ideas\emblema.xls |
d:\bestias.lst |
d:\conclave\pontificia\altares.seq |
c:\empleados\sueldos.dat |
Para ello era necesario crear una macro que busque el slash invertido de derecha a izquierda y que escriba en otra celda el resultado obtenido. La macro en cuestión es la siguiente:
Function midato(valor) As String
Dim resultado As String
Dim ubicacion As String
Dim ub As Integer
For ub = 1 To 50
resultado = Right(valor, ub)
If Left(resultado, 1) = "\" Then
ubicacion = Right(valor, ub - 1)
Exit For
End If
Next ub
midato = ubicacion
End Function
Espero que a más de alguien le sirva este pequeño ejemplo.
No hay comentarios.:
Publicar un comentario