Extraer nombres de archivos en una hoja de trabajo (Microsoft Excel)
Carol tiene un directorio con alrededor de 1,000 archivos con nombres como YR1905-LIC12345-Smith, Harry-Brown, Mary. A ella le gustaría traer todos estos nombres de archivo (no los archivos en sí) en una hoja de trabajo y separar los nombres en el tablero. Por lo tanto, el nombre de archivo de ejemplo ocuparía cuatro celdas en una sola fila. Carol cree que se necesitará una macro para lograrlo, pero no está segura de cómo acceder a los nombres de archivo en esa macro.
Por supuesto, puede usar una macro para hacer esto, pero no es necesario que use una macro. En su lugar, puede usar un viejo truco de la era de DOS para obtener lo que necesita.
En el símbolo del sistema (accesible a través de Windows: Inicio | Todos los programas | Accesorios | Símbolo del sistema), navegue hasta que esté en el directorio que contiene los archivos. Luego ingrese lo siguiente:
dir /b /a-d > filelist.txt
Esto crea un archivo de texto (filelist.txt) que contiene una lista de todos los archivos dentro del directorio actual. Ahora, dentro de Excel, puede seguir estos pasos:
-
Dentro de Excel, haga clic en la herramienta Abrir en la barra de herramientas. Excel muestra el cuadro de diálogo Abrir.
-
Usando la lista desplegable Archivos de tipo en la parte inferior del cuadro de diálogo, indique que desea abrir archivos de texto (.prn; .txt; * .csv).
-
Navegue y seleccione el archivo filelist.txt que creó en el símbolo del sistema.
-
Haga clic en Abrir. Excel inicia el Asistente para importación de texto y muestra el cuadro de diálogo Paso 1 de 3. (Ver figura 1)
-
Asegúrese de que la opción Delimitada esté seleccionada, luego haga clic en Siguiente. Excel muestra el cuadro de diálogo Paso 2 de 3.
-
Asegúrese de especificar un guión como delimitador. (Deberá hacer clic en Otro y luego ingresar un guión como delimitador).
-
Haga clic en Finalizar. Su archivo se importa y se divide en los guiones, tal como lo deseaba.
Los pasos anteriores son bastante fáciles de realizar, especialmente si solo necesita obtener la lista de archivos en Excel de vez en cuando. Si necesita hacerlo de forma más rutinaria, probablemente debería buscar una forma de hacerlo utilizando una macro. La siguiente macro funcionará muy rápidamente:
Sub GetFileNames() Dim sPath As String Dim sFile As String Dim iRow As Integer Dim iCol As Integer Dim splitFile As Variant 'specify directory to use - must end in "\" sPath = "C:\" iRow = 0 sFile = Dir(sPath) Do While sFile <> "" iRow = iRow + 1 splitFile = Split(sFile, "-") For iCol = 0 To UBound(splitFile) Sheet1.Cells(iRow, iCol + 1) = splitFile(iCol) Next iCol sFile = Dir ' Get next filename Loop End Sub
Cuando ejecute la macro, asegúrese de que no haya nada en la hoja de trabajo actual. (Todo lo que haya allí se sobrescribirá). Además, debe cambiar la ruta del directorio que se asigna a la variable sPath cerca del comienzo de la macro.
Si obtiene un error al ejecutar la macro, es muy probable que esté usando Excel 97. La función Dividir (utilizada para separar el nombre del archivo en los guiones) no se agregó a VBA hasta Excel 2000. Si está usando Excel 97 , entonces puedes usar la siguiente rutina para emular lo que hace la función Split:
Function Split(Raw As String, Delim As String) As Variant Dim vAry() As String Dim sTemp As String Dim J As Integer Dim Indx As Integer Indx = 0 sTemp = Raw J = InStr(sTemp, Delim) While J > 0 Indx = Indx + 1 ReDim Preserve vAry(1 To Indx) vAry(Indx) = Trim(Left(sTemp, J)) sTemp = Trim(Mid(sTemp, J, Len(sTemp))) J = InStr(sTemp, Delim) Wend Indx = Indx + 1 ReDim Preserve vAry(1 To Indx) vAry(Indx) = Trim(sTemp) Split = vAry() End Function
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (11143) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.
Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:
link: / excelribbon-Pulling_Filenames_into_a_Worksheet [Extrayendo nombres de archivo en una hoja de trabajo]
.