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

¿Cómo copiar filas de varias hojas de cálculo a una hoja nueva según criterios específicos?

AutorXiaoyang Fecha de modificación

Supongamos que tiene un libro con tres hojas de cálculo con el mismo formato, como se muestra en la siguiente captura de pantalla. Ahora desea copiar todas las filas de estas hojas cuya columna C contenga el texto “Completed” a una hoja de cálculo nueva. ¿Cómo podría resolver este problema de forma rápida y sencilla sin tener que copiarlas y pegarlas manualmente una por una?

datos de ejemplo 1datos de ejemplo 2datos de ejemplo 3

Copiar filas de varias hojas de cálculo según criterios a una hoja nueva con código VBA


Copiar filas de varias hojas de cálculo según criterios a una hoja nueva con código VBA

El siguiente código VBA le permite copiar filas específicas de todas las hojas del libro que cumplan una determinada condición a una nueva hoja de cálculo. Siga estos pasos:

1. Mantenga pulsadas las teclas ALT + F11 para 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: Copiar filas de varias hojas según criterios a una hoja nueva

Public Sub CopyRows_ValuesAndNumberFormats()
Dim xWs As Worksheet
Dim xCWs As Worksheet
Dim xRg As Range
Dim xStrName As String
Dim xRStr As String
Dim xRRg As Range
Dim xC As Integer
On Error Resume Next
Application.DisplayAlerts = False
xStr = "Kutools for Excel"
xRStr = "Completed"
Set xCWs = ActiveWorkbook.Worksheets.Item(xStr)
If Not xCWs Is Nothing Then
    xCWs.Delete
End If
Set xCWs = ActiveWorkbook.Worksheets.Add
xCWs.Name = xStr
xC = 1
For Each xWs In ActiveWorkbook.Worksheets
    If xWs.Name <> xStr Then
        Set xRg = xWs.Range("C:C")
        Set xRg = Intersect(xRg, xWs.UsedRange)
        For Each xRRg In xRg
            If xRRg.Value = xRStr Then
               xRRg.EntireRow.Copy
               xCWs.Cells(xC, 1).PasteSpecial xlPasteValuesAndNumberFormats
               xC = xC + 1
            End If
        Next xRRg
    End If
Next xWs
Application.DisplayAlerts = True
End Sub

Nota: En el código anterior:

  • El texto “Completed” en este xRStr = «Completed»script indica la condición específica según la cual desea copiar filas;
  • C:C en este Set xRg = xWs.Range(«C:C») script indica la columna en la que se encuentra la condición.

3. A continuación, pulse la tecla F5 para ejecutar este código y todas las filas que cumplan la condición específica se copiarán y pegarán automáticamente en una hoja de cálculo nueva denominada «Kutools para Excel» dentro del libro de trabajo actual. Vea la captura de pantalla:

código VBA para copiar filas de varias hojas según criterios



Más artículos relacionados sobre extracción o copia de datos:

  • Copiar datos a otra hoja de cálculo con el filtro avanzado en Excel
  • Normalmente, podemos aplicar rápidamente la función de Filtro avanzado para extraer datos directamente desde los datos originales en la misma hoja de cálculo. Sin embargo, a veces, al intentar copiar el resultado filtrado a otra hoja, aparece el siguiente mensaje de advertencia. En ese caso, ¿cómo se puede realizar esta tarea en Excel?
  • Copiar filas a una hoja nueva según criterios de columna en Excel
  • Por ejemplo, imagine que tiene una tabla de compras de frutas y necesita copiar los registros correspondientes a una fruta específica en una hoja nueva. ¿Cómo puede hacerlo fácilmente en Excel? A continuación, le presento un par de métodos para copiar filas a una hoja nueva según criterios de columna en Excel.
  • Copiar filas si la columna contiene un texto o valor específico en Excel
  • Supongamos que desea buscar celdas que contengan un texto o valor específico en una columna y, a continuación, copiar la fila completa en la que se encuentra dicha celda. ¿Cómo podría hacerlo? A continuación, le presento un par de métodos para detectar si una columna contiene un texto o valor específico y, posteriormente, copiar toda la fila correspondiente en Excel.

  • Super Barra de fórmulas (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (lea y edite cómodamente un gran número de celdas); Pegar en Rango de filtro...
  • Fusionar celdas, filas o columnas manteniendo los datos; dividir el contenido de las celdas; combinar filas duplicadas y sumar o calcular el promedio...; evitar entradas duplicadas en celdas; comparar rangos...
  • Seleccionar filas duplicadas o únicas;Seleccionar filas en blanco (todas las celdas vacías);Búsqueda avanzada y búsqueda difusa en varios libros de trabajo; selección aleatoria…
  • Copia celdas exactamente sin que cambien las referencias de las fórmulas; crea referencias automáticamente en varias hojas; inserta viñetas, casillas de verificación y mucho más...
  • Favoritas e inserción rápida de fórmulas, rangos, gráficos e imágenes; cifrado de celdas con contraseña; creación de listas de correo y envío de correos electrónicos…
  • Extraer texto, agregar texto, eliminar caracteres en una posición, eliminar espacios; crear e imprimir estadísticas de la página de datos; convertir entre contenido de celdas y comentarios...
  • Super Filtro (guarde y aplique esquemas de filtro en otras hojas); Clasificación avanzada por mes, semana, día, frecuencia y más; Filtro especial por negrita, cursiva…
  • Combina libros y hojas de trabajo; combina tablas basadas en una columna clave; divide datos en varias hojas; conversión masiva de archivos XLS, XLSX y PDF...
  • Agrupación en Tabla Dinámica por número de semana, día de la semana y más…Mostrar celdas desbloqueadas y bloquear la selección con colores diferenciados;Resaltar celdas que contienen fórmulas o nombres
kte tab 201905
  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de hacerlo en ventanas separadas.
  • ¡Aumente su productividad en un 50 % y ahorre cientos de clics del ratón cada día!
officetab bottom