Skip to content

Instantly share code, notes, and snippets.

@fransafu
Created July 26, 2018 21:52
Show Gist options
  • Save fransafu/946c3f1fc0007830bd29b88a48d1bc36 to your computer and use it in GitHub Desktop.
Save fransafu/946c3f1fc0007830bd29b88a48d1bc36 to your computer and use it in GitHub Desktop.
Get filename and extension from path route in excel [MACRO][VB]
Sub getFilename()
' Obtener Ultima fila y ultima columna
Dim numRows As Long
Dim numCols As Long
' Guardar texto de la ruta
Dim strDoc As Variant
' Guardar arreglo separado por la variable strSplit
Dim arraySplit() As String
Dim strSplit As String
' Posicion del elemento en el arreglo que queremos buscar
Dim position As Integer
' Obtener ultima fila basado en la columna A
numRows = Range("A" & Rows.Count).End(xlUp).Row
' Obtener la ultima columna comenzando por la primera Fila
numCols = Cells(1, Columns.Count).End(xlToLeft).Column
' Definir parametro para separar
strSplit = "/"
' LLenar la tercera columna en la primera fila si se encuentra vacia con el nombre de la columna "nameDoc"
If Cells(1, 3).Value = "" Then
Cells(1, 3).Value = "nameDoc"
End If
' Itera fila por fila
For i = 1 To numRows
' Itera columna por columna
For j = 1 To numCols
' Evalua la condicion donde el valor no es la primera fila pero si estar en la segunda columna (j = 2)
If j = 2 And Cells(i, j).Value <> "iUnixPathName" Then
' Obtener valor de la celda
strDoc = Cells(i, j).Value
' Realizar Split del valor segun la separacion que queremos
arraySplit = Split(strDoc, strSplit)
' Obtener la ultima posicion del arreglo
position = UBound(arraySplit)
' Escribir en la columna de al lado el valor obtenido (por eso es j + 1)
Cells(i, j + 1).Value = arraySplit(position)
End If
Next j
Next i
End Sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment