KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Venta de marzo: 20 % de descuento

Crear múltiples carpetas y subcarpetas a partir de una lista de datos en Excel

AutorXiaoyang Fecha de modificación

Supongamos que tiene una lista de nombres de empleados en un rango de su hoja de cálculo y desea crear carpetas individuales para cada uno, destinadas a almacenar su información. Crear manualmente cada carpeta puede resultar extremadamente lento. No obstante, existen métodos eficaces para agilizar este proceso. En esta guía, le mostraré varios enfoques para generar rápidamente carpetas basadas en los valores de las celdas especificadas.

Una captura de pantalla de una hoja de cálculo de Excel que contiene una lista de nombres de personal para la creación de carpetas

Crear carpetas basadas en los valores de las celdas

Crear carpetas y subcarpetas basadas en valores de celda mediante código VBA


Crear carpetas basadas en los valores de las celdas

En esta sección, exploraremos diversos métodos en detalle, ofreciendo instrucciones paso a paso completas para crear carpetas a partir de una lista de valores de celda de forma rápida y sencilla.

Crear carpetas a partir de una lista mediante el comando MD y el Bloc de notas

Convertir una lista de Excel en carpetas mediante el comando MD y el Bloc de notas es un truco inteligente que combina sencillas secuencias de comandos por lotes con la capacidad de Excel para mantener el orden. Este método resulta ideal para crear múltiples carpetas de forma rápida y eficaz, sin necesidad de hacerlo manualmente. A continuación, te presentamos una guía paso a paso para llevarlo a cabo:

Paso 1: Utilice el comando MD para Crear fórmulas

Copie o introduzca la siguiente fórmula en una celda vacía junto al primer valor de su lista (por ejemplo, B1) y, a continuación, arrastre el controlador de relleno hacia abajo para aplicarla a todos los elementos de la lista.

="MD "&A1

Una captura de pantalla que muestra la fórmula del comando MD utilizada en Excel para crear carpetas

Paso 2: Copie y pegue las fórmulas en un archivo del Bloc de notas

  1. Pulse «Ctrl + C» para copiar las celdas que contienen la fórmula del comando MD.
  2. Abra el Bloc de notas y pulse «Ctrl + V» para pegar los comandos en un archivo generado.
    Una captura de pantalla del Bloc de notas que muestra los comandos MD copiados desde Excel para la creación de carpetas

Paso 3: Guarde el archivo del Bloc de notas como archivo .bat

Haga clic en «Guardar como» en la pestaña «Archivo» del Bloc de notas. En el cuadro de diálogo «Guardar como», seleccione un directorio donde desee crear varias carpetas, asigne al archivo un nombre con la extensión .bat y, por último, haga clic en «Guardar». Consulte la captura de pantalla:
Una captura de pantalla del cuadro de diálogo Guardar como en el Bloc de notas para guardar el archivo con extensión .bat

Paso 4: Haga doble clic en el archivo .bat para generar varias carpetas

  1. Cierre el Bloc de notas y vaya a la carpeta donde guardó anteriormente el archivo .bat.
  2. Ahora, sea testigo de la magia: haga doble clic en el archivo y verá cómo se crean varias carpetas al instante. ¡Mire la demostración a continuación!
    Una demostración de cómo hacer doble clic en un archivo .bat para crear múltiples carpetas a partir de valores de Excel
 

Crear carpetas a partir de una lista mediante una herramienta potente: Kutools para Excel

Con la potente función «Crear carpeta basada en rango» de Kutools para Excel, puede generar carpetas fácil y rápidamente a partir de una lista en Excel. Y no se limita solo a carpetas básicas: Kutools también le permite crear estructuras complejas con subcarpetas multinivel en un solo paso. Con solo unos pocos clics, transformará sus datos de Excel en un sistema organizado de carpetas, aumentando significativamente su productividad.

Kutools para Excelofrece más de 300 funciones avanzadas para simplificar tareas complejas, potenciando la creatividad y la eficiencia.Integrado con capacidades de IA, Kutools automatiza tareas con precisión, haciendo que la gestión de datos sea sencilla.Información detallada de Kutools para Excel...         Prueba gratuita...

Después de instalar Kutools para Excel, haga clic en «KUTOOLS PLUS» > «Importar/Exportar» > «Crear Carpeta Basada en Rango» para abrir el cuadro de diálogo Crear Carpeta Basada en Rango:

  1. Seleccione los valores de celda a partir de los cuales desea crear carpetas;
  2. A continuación, haga clic en el botón Una captura de pantalla del botón utilizado para seleccionar una carpeta de destinopara especificar la carpeta de destino en la que desea guardar las carpetas;
  3. Por último, haga clic en el botón Aceptar.
    Una captura de pantalla del cuadro de diálogo de Kutools Crear carpetas a partir del contenido de celdas en Excel

Resultado:

Kutools procesará la lista de su hoja y creará una carpeta para cada entrada en la ubicación de destino especificada. Vaya a la carpeta de destino para ver el resultado. Consulte la captura de pantalla:
Una captura de pantalla que muestra el resultado de las carpetas creadas por Kutools for Excel

Consejos:
  1. Esta útil función también le permite crear carpetas junto con sus subcarpetas según sus necesidades. Para ello, introduzca los nombres de las carpetas y subcarpetas deseados en las celdas, utilizando la barra invertida (\) para separar cada nivel. El contenido de cada celda servirá como guía para configurar la estructura deseada de carpetas y subcarpetas.
    Una captura de pantalla que muestra carpetas con subcarpetas creadas según los valores de celdas de Excel
    A continuación, aplique la función «Crear Carpeta Basada en Rango» y todas las carpetas, junto con sus subcarpetas, se crearán correctamente. Vea la captura de pantalla:
    Una captura de pantalla que muestra carpetas con subcarpetas creadas según los valores de celdas de Excel
  2. Para utilizar esta función, por favor descargue e instale Kutools para Excel.
 

Crear carpetas a partir de una lista mediante código VBA

El uso de código VBA en Excel puede convertir la tediosa tarea de crear carpetas a partir de una lista en un proceso rápido y totalmente automatizado. En esta sección, le mostraremos cómo aplicar código VBA para generar esas carpetas.

Paso 1: Abra el editor de módulos VBA y copie el código

  1. Mantenga pulsadas las teclas «ALT + F11» en Excel y se abrirá la ventana de Microsoft Visual Basic para Aplicaciones.
  2. Haga clic en «Insertar» > «Módulo» y pegue el siguiente código en la ventana del módulo.
    Código VBA: Crear carpetas basadas en una lista de valores de celda
    Sub CreateFoldersFromSelection()
    'Updateby Extendoffice
        Dim FolderPath As String
        Dim Cell As Range
        Dim SelectedRange As Range
        Dim FolderName As String
        On Error Resume Next
        Set SelectedRange = Application.InputBox("Select the range with folder names", "Kutools for Excel", Type:=8)
        If SelectedRange Is Nothing Then Exit Sub
        On Error GoTo 0
        
        With Application.FileDialog(msoFileDialogFolderPicker)
            .Title = "Select the destination Folder"
            .AllowMultiSelect = False
            If .Show <> -1 Then Exit Sub
            FolderPath = .SelectedItems(1) & "\"
        End With
        
        For Each Cell In SelectedRange
            FolderName = FolderPath & Cell.Value
            If Cell.Value <> "" And Not FolderExists(FolderName) Then
                MkDir FolderName
            End If
        Next Cell
    End Sub
    
    Function FolderExists(ByVal Path As String) As Boolean
        On Error Resume Next
        FolderExists = (GetAttr(Path) And vbDirectory) = vbDirectory
        On Error GoTo 0
    End Function
    

Paso 2: Ejecute el código

  1. Después de pegar este código, pulse la tecla F5 para ejecutarlo. En el cuadro de diálogo que aparece, seleccione los valores de celda a partir de los cuales desea crear carpetas y haga clic en Aceptar.
    Una captura de pantalla del aviso de VBA para seleccionar valores de celdas para la creación de carpetas en Excel
  2. A continuación, en la ventana emergente «Seleccionar la carpeta de destino», indique la ruta donde se generarán las carpetas creadas y, después, haga clic en el botón Aceptar; consulte la captura de pantalla:
    Una captura de pantalla del cuadro de diálogo para seleccionar una carpeta de destino para las carpetas creadas mediante VBA en Excel

Resultado:

Después de ejecutar el código VBA, diríjase al directorio de destino para ver el resultado. Allí encontrará las carpetas recién creadas, cada una correspondiente a un elemento de su lista en Excel. Consulte la captura de pantalla:
Una captura de pantalla que muestra el resultado de las carpetas creadas mediante VBA

Consejos:
  1. Si hay entradas duplicadas en las celdas, el código creará una sola carpeta.
  2. Si utiliza este código con frecuencia, considere guardar su libro en el formato «Libro de Excel habilitado para macros». De este modo, el código quedará integrado en el libro y podrá ejecutarlo directamente en el futuro sin tener que volver a introducirlo ni importarlo.

Crear carpetas y subcarpetas basadas en valores de celda mediante código VBA

A veces, puede encontrarse en la necesidad de crear no solo carpetas, sino también sus subcarpetas correspondientes, todo ello a partir de los datos contenidos en celdas de Excel. Para lograrlo, aquí tiene un código VBA que le será de gran ayuda.

Paso 1: Prepare los datos

En primer lugar, introduzca los datos tal como se muestra en la siguiente captura de pantalla: coloque los nombres de las carpetas principales en la primera columna y los nombres de las subcarpetas en la segunda columna.
Una captura de pantalla de datos en Excel con columnas para carpetas y subcarpetas

Paso 2: Abra el editor de módulos VBA y copie el código

  1. Mantenga pulsadas las teclas «ALT + F11» en Excel y se abrirá la ventana de Microsoft Visual Basic para Aplicaciones.
  2. Haga clic en «Insertar» > «Módulo» y pegue el siguiente código en la ventana del módulo.
    Código VBA: Crear carpetas y subcarpetas basadas en valores de celda
    Sub CreateFoldersAndSubfoldersWithUserInput()
    'Updateby Extendoffice
        Dim Rng As Range
        Dim Cell As Range
        Dim basePath As String
        Dim fldrPicker As FileDialog
        Dim FolderPath As String, subfolderPath As String
        On Error Resume Next
        Set Rng = Application.InputBox("Select the range of cells (two columns: one is folder column, another s subfolder column):", "Kutools for Excel", Type:=8)
        If Rng Is Nothing Then Exit Sub
        On Error GoTo 0
        Set fldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
        With fldrPicker
            .Title = "Select the Base Folder Path"
            .AllowMultiSelect = False
            If .Show <> -1 Then Exit Sub
            basePath = .SelectedItems(1)
        End With
        If Right(basePath, 1) <> "\" Then basePath = basePath & "\"
        For Each Cell In Rng.Columns(1).Cells
            If Not Cell.Value = "" Then
                FolderPath = basePath & Cell.Value
                If Not FolderExists(FolderPath) Then MkDir FolderPath
                If Not Cell.Offset(0, 1).Value = "" Then
                    subfolderPath = FolderPath & "\" & Cell.Offset(0, 1).Value
                    If Not FolderExists(subfolderPath) Then MkDir subfolderPath
                End If
            End If
        Next Cell
    End Sub
    
    Function FolderExists(FolderPath As String) As Boolean
        On Error Resume Next
        FolderExists = (GetAttr(FolderPath) And vbDirectory) = vbDirectory
        On Error GoTo 0
    End Function
    

Paso 3: Ejecute el código

  1. Después de pegar este código, pulse la tecla F5 para ejecutarlo. En el cuadro de diálogo que aparece, seleccione los valores de celda a partir de los cuales desea crear carpetas y, a continuación, haga clic en Aceptar.
    Una captura de pantalla del aviso de VBA para seleccionar rangos de celdas para crear carpetas y subcarpetas en Excel
  2. En la siguiente ventana emergente, especifique la ruta de destino donde se generarán las carpetas creadas y, a continuación, haga clic en el botón Aceptar; consulte la captura de pantalla:
    Una captura de pantalla del cuadro de diálogo de VBA para seleccionar una ruta de carpeta base en Excel

Resultado:

Después de ejecutar el código VBA, diríjase al directorio de destino para comprobar el resultado. Verá que las carpetas y sus respectivas subcarpetas, creadas según los valores indicados en las celdas, se han generado correctamente, tal como se muestra en la siguiente captura de pantalla:
Una captura de pantalla que muestra carpetas y subcarpetas creadas mediante código VBA en Excel

Consejos:
  1. Este código únicamente permite crear las carpetas principales y sus subcarpetas de primer nivel.
  2. Si utiliza este código con frecuencia, considere guardar su libro en el formato «Libro de Excel habilitado para macros». De este modo, el código quedará integrado en el libro y podrá ejecutarlo directamente en el futuro sin tener que volver a introducirlo ni importarlo.

Artículos relacionados:

  • Listar todas las carpetas y subcarpetas en Excel
  • ¿Ha tenido alguna vez el problema de listar todas las carpetas y subcarpetas de un directorio específico en una hoja de cálculo? Excel no ofrece una forma rápida ni sencilla de obtener de inmediato los nombres de todas las carpetas de un directorio determinado. Este artículo le ayudará a resolver esta tarea.
  • Copiar o mover archivos de una carpeta a otra basándose en una lista
  • Si tiene una lista de nombres de archivo en una columna de una hoja de cálculo y esos archivos están guardados en una carpeta de su ordenador, ¿cómo podría mover o copiar rápidamente a otra carpeta únicamente los archivos cuyos nombres aparecen en la hoja, tal como se muestra en la siguiente captura de pantalla?
  • Renombrar varios archivos de una carpeta
  • ¿Alguna vez te has enfrentado al tedioso problema de tener que renombrar múltiples archivos en una carpeta? Hacerlo uno por uno puede volverte loco si hay cientos o incluso miles de archivos. ¿Existen funciones útiles para agilizar esta tarea?