Red de conocimiento informático - Conocimiento informático - ¿Cómo copiar y pegar diferentes contenidos de una tabla a varias tablas a través de la macro VBA? Como se muestra a continuación

¿Cómo copiar y pegar diferentes contenidos de una tabla a varias tablas a través de la macro VBA? Como se muestra a continuación

Respuesta: Si ha creado 3 hojas hoja2, hoja3 y hoja4, puede usar el siguiente código: Sub?demo1()

Dim?d?As?Object

¿Atenuar?i?Como?Long

¿Atenuar?Rng?Como?Rango

¿Atenuar?Establecer?Rng?p>

¿Establecer? Rng?=?Range("A1").CurrentRegion

Set?d?=?CreateObject("scripting.dictionary")

For?i?=?2?To? Celdas(Filas.Cuenta,?" C").End(xlUp).Row

d(Celdas(i,?" C").Valor? >Siguiente

Application.ScreenUpdating?=?False

For?i?=?0?To?d.Count?-?1

Con?Rng

.AutoFilter?Filter(d.key,?"")(i)

.SpecialCells(xlCellTypeVisible).Copiar

Seleccionar?Case?Filter( d.key,?"")(i)

Caso?"Un conjunto de"

Hojas("Hoja2").Pegar?Hojas("Hoja2").Range( " A1")

Caso?"Dos grupos"

Hojas("Hoja3")."Hoja3").Rango("A1")

Caso ? "Grupo 3"

Hojas("Hoja4").Pegar?Hojas("Hoja4").Rango("A1")

Fin?Seleccionar

¿Fin?Con

Siguiente

Rng.AutoFilter

Application.ScreenUpdating?=?True

Fin?Sub

Si desea dividirlo directamente en 3 nuevos trabajos, puede usar el siguiente código

Sub?demo2()

Dim?d?As?Object

¿Dim?i?As?Long

¿Dim?Rng?As?Range

Establecer?Rng?=?Range("A1").RegiónCurrent

Set?d?=?CreateObject(" scripting.dictionary")

For?i?=?2?To?Cells(Rows.Count,?" C").End(xlUp) .Fila

d(Cells(i,?" C").Value)? =?""

Siguiente

Application.ScreenUpdating?=?False

Para?i?=?0?A?d.Count?-?1

Con?Rng

.AutoFilter??Filter(d. teclas ,?" ") (i)

.SpecialCells(xlCellTyp

eVisible).Copiar

Con?Sheets.Add

.Pegar?.Range("A1")

Fin?p>Siguiente paso

Rng.AutoFilter

Application.ScreenUpdating?=?True

¿Fin?