La función InStrRev se utiliza para recuperar el número de la posición de una cadena de caracteres que se encuentra dentro de otra cadena más larga. La función requiere de 4 parámetros donde los 2 últimos no son obligatorios.
La sintaxis es: InStrRev("cadena donde se va a llevar acabo la búsqueda", "cadena que se desea buscar", posición de inicio (opcional), tipo de comparación (opcional))
Ejemplo:
Sub BuscarPosicion()
Dim strcadena As String
strcadena = "Hoy es un día maravilloso como para estar triste."
MsgBox InStrRev(strcadena, "maravilloso")
End Sub
Dim strcadena As String
strcadena = "Hoy es un día maravilloso como para estar triste."
MsgBox InStrRev(strcadena, "maravilloso")
End Sub
Como resultado obtendremos: 15. Quince es la posición inicial de la palabra maravilloso.
Ahora una vez comprendido lo anterior con el método GetOpenFilename y funciones left y right junto con la función InStrRev obtendremos:
1.-La ruta de un archivo.
2.-Directorio donde se encuentra el archivo.
3.-Nombre del archivo.
2.-Directorio donde se encuentra el archivo.
3.-Nombre del archivo.
Para ello seguimos los siguientes pasos:
1.-Crear un formulario tal como se muestra:
2.-Escribimos el siguiente código:
Private Sub cmdexaminar_Click()
'Obtenemos la ruta completa del archivo con OpenFilename
'Me.txtruta.Text = Application.GetOpenFilename()
'Obtenemos el número de la posición inicial de la cadena \ (Si la cadena "\" se repite busca la última)
Me.txtposicion.Text = InStrRev(Me.txtruta.Text, "\")
'Obtenemos de izquierda a derecha el directorio
Me.txtcarpeta.Text = Left(Me.txtruta.Text, InStrRev(Me.txtruta.Text, "\"))
'Obtenemos el nombre del archivo de derecha a izquierda
Me.txtarchivo.Text = Right(Me.txtruta.Text, Len(Me.txtruta.Text) - (InStrRev(Me.txtruta.Text, "\")))
End Sub
3.-Ejecutamos el formulario F5, y como resultado podrás darte cuenta del uso adecuado de la función InStrRev como obtener el valor inicial de una cadena y combinado con GetOpenFileName, left y right es posible obtener la ruta, el directorio y el nombre de un archivo.
Otra forma de seleccionar un directorio es el siguiente codigo:
Sub GuardarRuta()
Dim objruta As Object
Set objruta = Application.FileDialog(msoFileDialogFolderPicker)
objruta.Show
'Si no selecciona carpeta salimos
If objruta.SelectedItems.Count = 0 Then Exit Sub
'Guardamos ruta a esta carpeta
MsgBox objruta.SelectedItems(1)
End Sub
Seleccionar un directorio
No hay comentarios.:
Publicar un comentario