Cortar, copiar y pegar desde una macro: ejemplos de código VBA

En este tutorial, aprenderá varios métodos diferentes para copiar y pegar y cortar y pegar usando una macro VBA. Lea el tutorial complementario sobre Value Pegar y PasteSpecial para opciones más avanzadas de copiar y pegar.

Para usar este código: Abra el Editor de Visual Basic (Alt + F11), Inserte un nuevo módulo (Insertar> Módulo) y copie y pegue el código deseado en el módulo.

Copiar (cortar) y pegar una sola celda

Este ejemplo copia o corta y pega una sola celda, A1 sobre B1:

123456789 Sub Paste_OneCell ()'Copiar y pegar una celdaRango ("A1"). Rango de copia ("B1")'Cortar y pegar una celdaRango ("A1"). Rango de corte ("B1")End Sub

Copiar selección

Si desea copiar la selección activa, use esto:

123456789101112 Sub CopySelection ()'Pegar en un rango definidoSelección rango de copia ("b1")'Offset Paste (desplaza 2 celdas hacia abajo y 1 hacia la derechaSelection.copiaSelection.offset (2,1) .pasteApplication.CutCopyMode = FalseEnd Sub

Copiar (cortar) y pegar un rango de celdas

Este ejemplo copia o corta y pega un rango de celdas, A1: A3 sobre B1: B3:

123456789 Sub Paste_Range ()'Copiar y pegar un rango de celdasRango ("A1: A3"). Rango de copia ("B1: B3")'Cortar y pegar un rango de celdasRango ("A1: A3"). Rango de corte ("B1: B3")End Sub

Copiar (cortar) y pegar una columna completa

A continuación, mostraremos un par de ejemplos rápidos. Lea nuestro artículo sobre cómo copiar y pegar filas y columnas para obtener ejemplos detallados, explicaciones y variaciones.

Este ejemplo copia o corta y pega una columna completa, A sobre B:

12345678910 Sub PasteOneColumn ()'Copiar y pegar columnaRango ("A: A"). Rango de copia ("B: B")'Cortar y pegar columnaRango ("A: A"). Rango de corte ("B: B")End Sub

Copiar (cortar) y pegar una fila completa

Este ejemplo copia o corta y pega una fila completa, de 1 a 2:

12345678910 Sub Paste_OneRow ()'Copiar y pegar filaRango ("1: 1"). Rango de copia ("2: 2")'Cortar y pegar filaRango ("1: 1"). Rango de corte ("2: 2")End Sub

Copiar (cortar) y pegar en otra hoja de trabajo o libro de trabajo

1234567891011121314 Sub Paste_Other_Sheet_or_Book ()'Cortar o copiar y pegar en otra hoja de trabajoHojas de trabajo ("hoja1"). Rango ("A1"). Copiar Hojas de trabajo ("hoja2"). Rango ("B1") 'CopiarHojas de trabajo ("hoja1"). Rango ("A1"). Cortar Hojas de trabajo ("hoja2"). Rango ("B1") 'Cortar'Cortar o copiar y pegar en otro libro de trabajoLibros de trabajo ("libro1.xlsm"). Hojas de trabajo ("hoja1"). Rango ("A1"). Copiar _Libros de trabajo ("libro2.xlsm"). Hojas de trabajo ("hoja1"). Rango ("B1") 'CopiarLibros de trabajo ("libro1.xlsm"). Hojas de trabajo ("hoja1"). Rango ("A1"). Cortar _Libros de trabajo ("libro2.xlsm"). Hojas de trabajo ("hoja1"). Rango ("B1") 'CortarApplication.CutCopyMode = FalseEnd Sub

Pegar valor

Normalmente, cuando copias y pegas, pegas todas las propiedades de una celda: formato, fórmulas, etc. El pegado de valores te permite copiar y pegar los valores de las celdas y nada más. La forma más fácil de pegar valor en VBA es definir el valor de la celda directamente:

123456789101112131415 Sub ValuePaste ()'Value Paste CellsRango ("B1"). Valor = Rango ("A1"). ValorRango ("B1: B3"). Valor = Rango ("A1: A3"). Valor'Establecer valores entre hojas de trabajoHojas de trabajo ("hoja2"). Rango ("A1"). Valor = Hojas de trabajo ("hoja1"). Rango ("A1"). Valor'Establecer valores entre libros de trabajoLibros de trabajo ("libro2.xlsm"). Hojas de trabajo ("hoja1"). Rango ("A1"). Valor = _Libros de trabajo ("libro1.xlsm"). Hojas de trabajo ("hoja1"). Rango ("A1"). ValorApplication.CutCopyMode = FalseEnd Sub

Pegado especial

Pegado especial le permite copiar y pegar propiedades específicas de celdas (ejemplos: formatos, valores, anchos de columna, etc.). También le permite realizar operaciones especiales de pegado (ejemplos: omitir espacios en blanco, transponer). Veremos varios ejemplos a continuación, pero para un análisis en profundidad, lea nuestro tutorial sobre Pegado de valores y Pegado especial.

12345678910111213141516171819 Sub PasteSpecial ()Realice una operación especial de pegado:Rango ("A1"). Copiar'Pegar formatosRango ("B1"). PasteSpecial Paste: = xlPasteFormats'Pegar anchos de columnaRango ("B1"). PasteSpecial Paste: = xlPasteColumnWidths'Pegar fórmulasRango ("B1"). PasteSpecial Paste: = xlPasteFormulasRealice varias operaciones especiales de pegado a la vez:Rango ("A1"). Copiar'Pegar formatos y transponerRango ("B1"). PasteSpecial Paste: = xlPasteFormats, Operación: = xlNone, SkipBlanks: = _Falso, Transponer: = VerdaderoApplication.CutCopyMode = FalseEnd Sub

Portapapeles transparente

Después de copiar y pegar, es posible que desee borrar el portapapeles (lo hacemos en algunos de los ejemplos de código anteriores). Para borrar el portapapeles de Excel, configuramos Application.CutCopyMode en False:

1 Application.CutCopyMode = False

Esto borrará el portapapeles de Excel. Sin embargo, no borrará el Portapapeles de Windows. Para borrar el portapapeles de la ventana, siga las instrucciones aquí.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave