Cómo aplicar VBA PasteSpecial y mantener el formato de origen en Excel

  • Compartir Este
Hugh West

Sin embargo, hay situaciones en las que queremos duplicar algo más que texto. Podemos copiar todas las capacidades de Excel, como el formato condicional, la validación de datos, el formato de tipo de datos y características estéticas como los bordes y los colores de las celdas. Tal vez admires la combinación de colores de tu compañero de trabajo pero necesites datos estáticos, o tal vez las fórmulas sean fantásticas pero te disguste la combinación de colores.En este tutorial mostraremos el VBA PasteSpecial y mantenga el formato de origen en Excel.

Descargar el cuaderno de prácticas

Descárgate este cuaderno de prácticas para ejercitarte mientras lees este artículo.

VBA PegarEspecial.xlsm

4 Ejemplos Fáciles para Aplicar VBA PasteSpecial y Mantener el Formato de Origen en Excel

Demostraremos cuatro ejemplos de cómo utilizar el especial de pegar en VBA A continuación se muestra un conjunto de datos de ejemplo que utilizaremos para copiar y pegar.

1. Agregar Cuadro de Entrada Usando VBA PasteSpecial y Mantener Formato de Fuente en Excel

En primer lugar, utilizaremos el cuadro para seleccionar un rango y luego pegarlo en otra celda. Para ello, sigue los pasos que se indican a continuación.

Primer paso:

  • En primer lugar, pulse Alt + F11 para iniciar un Macro .
  • A continuación, haga clic en el botón Insertar, elija el Módulo opción.

Segundo paso:

  • Pegue el siguiente código VBA.
 Sub PasteSpecialKeepFormat() 'Declarar CopyCell y PasteCell como variables de rango Dim CopyCell As Range, PasteCell As Range 'Dar un nombre al cuadro de entrada xTitleId = "ExcelWIKI" 'Establecer el rango de copia se seleccionará de la hoja de cálculo Set CopyCell = Application.Selection 'Establecer un cuadro de entrada para tomar un rango para copiar Set CopyCell = Application.InputBox("Seleccionar rango para copiar :", xTitleId, CopyCell.Address,Type:=8) 'Establecer un cuadro de entrada para tomar un rango para pegar Set PasteCell = Application.InputBox("Paste to any blank cell:", xTitleId, Type:=8) 'Comando para copiar el rango seleccionado CopyCell.Copy 'Comando para pegar el rango PasteCell.Parent.Activate 'Comando para que las celdas pegadas mantengan el formato de origen PasteCell.PasteSpecial xlPasteValuesAndNumberFormats PasteCell.PasteSpecial xlPasteFormatsApplication.CutCopyMode = False End Sub 

Tercer paso:

  • Guardar el programa y pulse F5 para ejecutarlo.
  • Después de aparecer el ExcelWIKI seleccione el intervalo $B$4:$C$11 .
  • Haga clic en OK .

Paso 4:

  • Seleccione cualquier celda en blanco para pegar.
  • A continuación, haga clic en DE ACUERDO.

  • Por lo tanto, obtendrá el valor de pegado manteniendo intacto el formato.

Más información: Diferencia entre Pegar y Pegado Especial en Excel

2. Aplicar VBA PegarEspecial para Seleccionar Rango y Mantener el Formato de Origen en Excel

En VBA También puede especificar rangos y copiarlos y pegarlos manteniendo el formato de origen. Siga los pasos que se indican a continuación para hacerlo.

Primer paso:

  • Pulse Alt + F11 para abrir Macro .
  • Cree un nuevo módulo a partir de Inserte
  • Simplemente, pegue lo siguiente VBA código de la gama B4:C11 .
 Sub pasteSpecial_KeepFormat() 'seleccionar rango a copiar Range("B4:C11").Copy 'seleccionar celda a pegar 'Comando a pegarSpecial manteniendo el Formato Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Segundo paso:

  • Por último, guarda el programa y pulsa F5 En consecuencia, verá los cambios como se muestra en la siguiente imagen.

Read More: VBA Pegar Especial para Copiar Valores y Formatos en Excel (9 Ejemplos)

Lecturas similares

  • Código VBA para Comparar Dos Hojas de Excel y Copiar las Diferencias
  • Excel VBA: Copiar valor de celda y pegar a otra celda
  • Cómo copiar varias celdas a otra hoja en Excel (9 métodos)
  • Excel VBA: Copiar Rango a Otro Libro
  • [Solucionado]: Copiar y pegar con el botón derecho del ratón no funciona en Excel (11 soluciones)

3. Declarar Variable Aplicando VBA PasteSpecial y Mantener Formato de Origen en Excel

Mediante la declaración de variables y la configuración de variables en diferentes rangos, siga los pasos que se indican a continuación para pegarSpecial en VBA .

Paso 1:

  • En primer lugar, pulse Alt + F11 para abrir Macro VBA .
  • Seleccione un nuevo Módulo .
  • A continuación, pegue lo siguiente Código VBA .
 Sub Copy_Paste_Special() 'Declara variables Dim copy_Rng As Range, Paste_Range As Range 'Comando para copiar rango Set copy_Rng = Range("B4:C11") 'Comando para pegar rango Set Paste_Range = Range("E4") copy_Rng.Copy 'Pega el comando a pasteSpecial manteniendo el formato Paste_Range.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Segundo paso:

  • Después de guardar el programa, pulse F5 para correr.
  • Por lo tanto, el rango copiado se pegará manteniendo el formato de origen como antes.

Más información: Cómo utilizar VBA PasteSpecial para fórmulas y formatos en Excel (3 maneras)

4. Usar VBA PasteSpecial y Mantener el Formato de Origen en una Hoja de Trabajo Diferente en Excel

Hablaremos de un método muy significativo en esta parte. Porque vamos a ver cómo usar PasteSpecial en VBA en varios libros de trabajo. Por ejemplo, copiaremos de Hoja4 y pegarlo en Hoja5 como se muestra en los pasos siguientes.

Paso 1:

  • Para abrir Macro VBA pulse Alt + F11
  • Desde el Inserte seleccione la pestaña Módulo.
  • A continuación, pegue lo siguiente VBA.
 Private Sub KeepSourceFormat() Application.ScreenUpdating = False 'Declarar variables Dim copyRng As Worksheet Dim pasteRng As Worksheet 'Establecer rango destino a la variable Set copyRng = Worksheets("Hoja4") Set pasteRng = Worksheets("Hoja5") 'establecer el destino de las celdas pegadas 'Para la celda E4, Rows.count = 5, Offset = 3 Set Destination = pasteRng.Cells(Rows.Count, 5).End(xlUp).Offset(3, 0)'Comando para copiar el rango copyRng.Range("B4:C11").Copy 'Comando para pegar el rango Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Segundo paso:

  • Para ejecutar el programa, pulse F5 después de guardar el programa.
  • Por lo tanto, obtendrá el valor pegado en hoja 5 manteniendo el formato de origen.

Más información: Cómo usar el comando especial Pegar en Excel (5 formas adecuadas)

Conclusión

En resumen, espero que ahora sepas cómo utilizar Excel VBA Examine el libro de prácticas y aplique lo aprendido. Nos motiva seguir dando conferencias como ésta gracias a su importante apoyo.

Si tiene alguna pregunta, no dude en ponerse en contacto con nosotros. Comparta su opinión en el cuadro de comentarios que figura a continuación.

Sus preguntas serán respondidas lo antes posible por el Exceldemy personal.

Quédate con nosotros y sigue aprendiendo.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.