Return to VBA Code Examples

VBA – Cortar, copiar y pegar desde una macro

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