VBA – Cortar, copiar y pegar desde una macro

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on abril 7, 2023

En este tutorial, aprenderá varios métodos diferentes para Copiar y Pegar y Cortar y Pegar utilizando una macro VBA. Lea el tutorial complementario sobre Pegado de valores y PasteSpecial para conocer opciones más avanzadas de copiado y pegado.

Para utilizar 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:

Sub pegarUnaCelda()

    'copiar y pegar una sola celda
    Range("A1").Copy Range("B1")

    'cortar y pegar una celda
    Range("A1").Cut Range("B1")

End Sub

La codificación VBA es fácil

Deje de buscar código VBA en línea. Aprenda más sobre AutoMacro – Un generador de código VBA que permite a los principiantes codificar procedimientos desde cero con un mínimo conocimiento de codificación y con muchas características que ahorran tiempo a todos los usuarios

alt text

Más información

Copiar selección

Si quiere copiar la selección activa utilice esto:

Sub copiarSeleccion()

'Pegar en un rango definido
Selection.copy range("b1")

'Pegar con desplazamiento (desplaza 2 celdas hacia abajo y 1 hacia la derecha)
Selección.copy
Selection.offset(2,1).Select
ActiveSheet.Paste

Application.CutCopyMode = False

End 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 :

Sub pegarRango()

    'copiar y pegar un rango de celdas
    Range("A1:A3").Copy Range("B1:B3")

    'cortar y pegar un rango de celdas
    Range("A1:A3").Cut Range("B1:B3")

End Sub

Copiar (cortar) y pegar una columna entera

A continuación mostraremos un par de ejemplos rápidos. Lea nuestro artículo sobre Copiar y pegar filas y columnas para ver ejemplos detallados, explicaciones y variaciones. Este ejemplo copia o corta y pega una columna entera, A sobre B:

Sub pegarUnaColumna()

    'Copiar y pegar columna
    Range("A:A").Copy Range("B:B")


    'cortar y pegar columna
    Range("A:A").Cut Range("B:B")

End Sub

Copiar (cortar) y pegar una fila entera

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

Sub pegarUnaFila()

    'Copiar y pegar fila
    Range("1:1").Copy Range("2:2")


    'cortar y pegar fila
    Range("1:1").Copy Range("2:2")

End Sub

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

Sub pegarOtraHoja_o_Libro()

    'Cortar o copiar y pegar en otra hoja de trabajo
    Worksheets("hoja1").Range("A1").Copy Worksheets("hoja2").Range("B1") 'Copiar
    Worksheets("hoja1").Range("A1").Cut Worksheets("hoja2").Range("B1") 'Cortar

    'cortar o copiar y pegar en otro libro de trabajo
    Workbooks("libro1.xlsm").Worksheets("hoja1").Range("A1").Copy _
    Workbooks("libro2.xlsm").Worksheets("hoja1").Range("B1") 'Copiar
    Workbooks("libro1.xlsm").Worksheets("hoja1").Range("A1").Cut _
    Workbooks("libro2.xlsm").Worksheets("hoja1").Range("B1") 'Cortar

    Application.CutCopyMode = False
End Sub

Pegar valores

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

Sub pegarValores()

    'Pegar valor de celdas
    Range("B1").value = Range("A1").value
    Range("B1:B3").value = Range("A1:A3").value

    'Establecer los valores entre las hojas de trabajo
    Worksheets("hoja2").range("A1").value = Worksheets("hoja1").range("A1").value

    'Establecer valores entre libros de trabajo
    Workbooks("libro2.xlsm").Worksheets("hoja1").range("A1").value = _
    Workbooks("libro1.xlsm").Worksheets("hoja1").range("A1").value

    Application.CutCopyMode = False
End Sub

Pegado Especial

El Pegado Especial permite copiar y pegar propiedades específicas de las celdas (ejemplos: formatos, valores, anchos de columna, etc.). También permite realizar operaciones especiales de pegado (ejemplo: saltar espacios en blanco, transponer). Veremos varios ejemplos a continuación, pero para profundizar en el tema lea nuestro tutorial sobre Pegado de valores y Pegado especial.

Sub pegadoEspecial()

    'Realiza una operación de Pegado Especial:
    Range("A1").Copy
    'Pegar Formatos
    Range("B1").PasteSpecial Paste:=xlPasteFormats
    'Pegar Anchos de Columna
    Range("B1").PasteSpecial Paste:=xlPasteColumnWidths
    'Pegar Fórmulas
    Range("B1").PasteSpecial Paste:=xlPasteFormulas

    'Realizar varias operaciones de Pegado Especial a la vez:
    Range("A1").Copy
    'Pegar Formatos y Transponer
    Range("B1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True

    Application.CutCopyMode = False
End Sub

Borrar el Portapapeles

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, establecemos Application.CutCopyMode a False:

Application.CutCopyMode = False

vba clear clipboard

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

vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples