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í.