VBA – Cortar, copiar y pegar desde una macro
In this Article
- Copiar (cortar) y pegar una sola celda
- La codificación VBA es fácil
- Más información
- Copiar selección
- Copiar (cortar) y pegar un rango de celdas
- Copiar (cortar) y pegar una columna entera
- Copiar (cortar) y pegar una fila entera
- Copiar (cortar) y pegar en otra hoja o libro de trabajo
- Pegar valores
- Pegado Especial
- Borrar el Portapapeles
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
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
Esto borrará el portapapeles de Excel. Sin embargo, no borrará el portapapeles de Windows. Para borrar el portapapeles de Windows siga las instrucciones aquí.