Tabla de contenido
Cuando necesitamos copiar y pegar cualquier dato en Microsoft Excel, tenemos la facilidad de diferentes atajos y herramientas de cinta en Excel. Excel VBA Macro también tienen esta facilidad en lugar de opciones de libro de trabajo. Vamos a discutir la Pegado especial VBA valores y formatos en Excel.
Descargar el cuaderno de prácticas
Descárgate este cuaderno de prácticas para ejercitarte mientras lees este artículo.
Valores y formatos con PasteSpecial.xlsm
9 Ejemplos para Copiar Valores y Formatos con Pegado Especial en Excel VBA
En este artículo hablaremos de 9 métodos con Macros VBA para Pegado especial valores y formato en Excel.
Para ello, consideraremos el conjunto de datos que figura a continuación.
1. Aplicar InputBox en VBA Pegar Especial para Copiar Valores y Formatos
En este ejemplo utilizaremos la opción InputBox para Pegado especial .
Primer paso:
- Ir a la Desarrollador ficha.
- Haga clic en Grabar macro .
- Establecer Excel_Pegar_Special_1 como el Nombre de la macro .
- A continuación, pulse OK .
Segundo paso:
- Ahora, haga clic en el botón Macros mando.
- Seleccione Macro y, a continuación, pulse Entra .
Paso 3:
- Copia y pega el siguiente código en el módulo de comandos.
Sub Excel_Paste_Special_1() Dim Copy_Cell As Range, Paste_Cell As Range xTitleId = "Salary_Sheet" Set Copy_Cell = Application.Selection Set Copy_Cell = Application.InputBox("Selecciona el rango a copiar :", xTitleId, Copy_Cell.Address, Type:=8) Set Paste_Cell = Application.InputBox("Pega en cualquier celda en blanco:", xTitleId, Type:=8) Copy_Cell.Copy Paste_Cell.Parent.Activate Paste_Cell.PasteSpecialxlPasteValuesAndNumberFormats Paste_Cell.PasteSpecial xlPasteFormats Application.CutCopyMode = False End Sub
Paso 4:
- Pulse F5 para ejecutar el código.
- Aparecerá un nuevo cuadro de diálogo. Seleccione el rango de origen en ese cuadro.
- A continuación, pulse OK .
Paso 5:
- Aparecerá otro cuadro de diálogo. Elija un rango en blanco donde pegar las celdas copiadas.
Ahora, mira el conjunto de datos.
Todos los datos se copian con valores y formatos utilizando la función Pegado especial VBA .
Más información: Cómo aplicar VBA PasteSpecial y mantener el formato de origen en Excel
2. Insertar Rango de Celdas con Valores y Formatos Usando xlPasteAllUsingSourceTheme en VBA Pegado Especial
Insertaremos el rango de celdas directamente en el VBA código en esta sección.
Primer paso:
- Pulse Alt+F11 para entrar en el módulo de mando.
- Pon el siguiente código en el módulo de comandos.
Sub Excel_Paste_Special_2() Range("B4:C9").Copy Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub
Segundo paso:
- Ahora, pulse F5 para ejecutar el código.
Este xlPasteAllUsingSourceTheme copia el duplicado exacto de los datos de origen.
Más información: Excel VBA: Copiar valor de celda y pegar a otra celda
3. Usar Variable VBA para Insertar Rango con Valores y Formatos Usando Pegado Especial
Mostraremos el uso de variables en el Pegado especial VBA código aquí.
Primer paso:
- En primer lugar, entre en el módulo de comandos pulsando Alt+F11 .
- Escribe el siguiente código en el módulo de comandos.
Sub Excel_Paste_Special_3() Dim source_rng As Range, paste_rng As Range Set source_rng = Range("B4:C9") Set paste_rng = Range("E4") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub
Segundo paso:
- Pulse F5 y ejecuta el código.
Más información: Excel VBA: Copiar Rango a Otro Libro
4. Utilizar xlPasteValues y xlPasteFormats para Copiar Valores y Formatos en Otra Hoja Manteniendo los Formatos Sin Cambios
Los métodos anteriores se utilizaron para copiar y pegar datos en la misma hoja. Ahora, mostraremos cómo utilizar la función Pegado especial VBA para hojas diferentes.
Primer paso:
- Acceda al módulo de comandos pulsando Alt+F11 y copiar el siguiente código en él.
Private Sub Excel_Paste_Special_4() Application.ScreenUpdating = False Dim source_rng As Worksheet Dim paste_rng As Worksheet Set source_rng = Worksheets("Data_Set") Set paste_rng = Worksheets("Different_Sheet") Set Destination = paste_rng.Range("B2") source_rng.Range("B2:C9").Copy Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormatsApplication.CutCopyMode = False Application.ScreenUpdating = True End Sub
Segundo paso:
- Pulse F5 para ejecutar el código.
Podemos ver que los datos del Conjunto_datos se copia en Hoja_distinta .
Más información: Cómo utilizar VBA PasteSpecial para fórmulas y formatos en Excel (3 maneras)
Lecturas similares
- Cómo copiar varias celdas a otra hoja en Excel (9 métodos)
- Diferencia entre Pegar y Pegado Especial en Excel
- Excel VBA para copiar datos de otro libro sin abrir
- Cómo copiar y pegar en Excel y mantener el tamaño de las celdas (7 ejemplos)
- Copiar y Pegar Valores en la Siguiente Fila Vacía con Excel VBA (3 Ejemplos)
5. Utilice xlPasteFormats para pegar sólo los formatos
En los métodos anteriores, copiamos los datos completos y los pegamos sin cambios. Pero en esta sección, copiaremos sólo el formato de los datos.
Primer paso:
- Vaya al módulo de mando pulsando Alt+F11 .
- Copia y pega el siguiente código en el módulo de comandos.
Sub Excel_Paste_Special_5() Range("B2:C9").Copy Range("E2").PasteSpecial xlPasteFormats End Sub
Segundo paso:
- Ahora, pulse el botón F5 y ejecute el código.
Mire el conjunto de datos. Sólo se copian los formatos, aquí no hay valores.
Más información: Cómo copiar y pegar en Excel sin cambiar el formato
6. Utilice xlPasteValues para pegar sólo los valores
Sólo podemos copiar los valores utilizando la función Pegado especial VBA .
Primer paso:
- Pulse Alt+F11 para entrar en el módulo de mando.
- Escribe el siguiente código en el módulo de comandos.
Sub Excel_Paste_Special_6() Range("B4:C9").Copy Range("E4").PasteSpecial xlPasteValues End Sub
Segundo paso:
- Haga clic en F5 y ejecuta el código.
Observe el conjunto de datos. Aquí sólo se copian valores. En este método no se copian formatos.
Más información: Cómo utilizar VBA para pegar valores sólo sin formato en Excel
7. Copiar y pegar todo el contenido de una celda
En las secciones anteriores, copiamos un rango de datos. Aquí, copiaremos sólo una celda.
Primer paso:
- Ahora, pulse Alt+F11 y entra en el módulo de comandos.
- Escriba el siguiente código en el módulo.
Sub Excel_Paste_Special_7() Range("B4").Copy Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub
Segundo paso:
- Ahora, pulse el botón F5 para ejecutar el código.
Podemos ver que aquí se copia una sola celda, no un rango.
Más información: Fórmula para Copiar y Pegar Valores en Excel (5 Ejemplos)
8. Copiar y pegar todos los atributos de una columna determinada con VBA
Al igual que una sola celda, podemos copiar una sola columna del conjunto de datos.
Primer paso:
- Basta con pulsar el botón Alt+F11 para entrar en el módulo de mando.
- Escriba el siguiente código en el módulo.
Sub Excel_Paste_Special_8() Dim source_rng As Range, paste_rng As Range Set source_rng = Columns("C") Set paste_rng = Columns("E") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub
Segundo paso:
- Ejecute el código pulsando F5 .
Aquí, podemos ver que Columna B se copia en Columna E .
Más información: [Solucionado]: Copiar y pegar con el botón derecho del ratón no funciona en Excel (11 soluciones)
9. Copiar y Pegar Todos los Atributos de una Fila con Excel VBA
Del mismo modo, podemos copiar una sola fila utilizando la función Pegado especial .
Primer paso:
- Haga clic en Alt+F11 para entrar en el módulo de comandos.
- Copie el siguiente código en el módulo de comandos.
Sub Excel_Paste_Special_9() Dim source_rng As Range, paste_rng As Range Set source_rng = Rows("4") Set paste_rng = Rows("11") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub
Segundo paso:
- Ejecute el código pulsando F5 .
Toma, Fila 4 se copia en Fila 11 .
Más información: Cómo Copiar Varias Filas en Excel Usando Macro (4 Ejemplos)
Conclusión
En este artículo hemos explicado 9 métodos de VBA Pegar valores especiales y formatos en Excel. Espero que esto satisfaga sus necesidades. Por favor, eche un vistazo a nuestro sitio web Exceldemy.com y danos tus sugerencias en el cuadro de comentarios.