Sunteți pe pagina 1din 4

Cmo copiar y pegar celdas con VBA

inShar e

Copiar y pegar valores en Excel es una tarea muy comn por lo que ser casi inevitable que en algn momento necesites hacer un copiado y pegado de celdas dentro de una macro. Para copiar y pegar celdas con VBA haremos uso de los mtodos Copy y PasteSpecial del objeto Range.

Copiar y pegar celdas en la misma hoja


Si los valores sern pegados dentro de la misma hoja, entonces puedes utilizar un cdigo como el siguiente:

Este cdigo copiara el contenido de la celda A1 y lo pegar en la celda B1. El argumento xlPasteAll ocasiona que se pegue todo el contenido en la celda B1incluyendo el formato de la celda y las frmulas. Finalmente la instruccin Application.CutCopyMode = False hace que Excel de por finalizada la accin de copiado y pegado.

Copiar y pegar los valores de una celda con VBA


Si en lugar de copiar todo el contenido de una celda deseas copiar solamente los valores, entonces debes hacer una pequea modificacin en el argumento del mtodo PasteSpecial de la siguiente manera:

Observa que ahora el argumento utilizado es xlPasteValues el cual ocasionar que se peguen solamente los valores de las celdas copiadas.

Copiar y pegar una fila o columna con VBA


Es posible copiar y pegar columnas con VBA si modificamos el rango indicado en el mtodo Range. Por ejemplo, para copiar la columna A en la columna B utiliza el siguiente cdigo:

Si en lugar de copiar la columna A, necesitas copiar la fila 1 y pegarla en la fila 2, entonces puedes usar el siguiente cdigo:

Copiar y pegar a otra hoja

Para pegar los valores a una hoja diferente, solamente debemos especificar la hoja destino haciendo uso del objeto Worksheets de la siguiente manera:

Ahora bien, si tanto la hoja origen como la hoja destino son diferentes a la hoja activa, entonces ser necesario indicar el nombre de la hoja tanto al momento de copiar como al momento de pegar. En el siguiente cdigo estoy suponiendo que el botn que ejecuta la macro se encuentra en la Hoja1 y copiar todo el contenido de la celda A1 de la Hoja2 hacia la celda B1 de la Hoja3:

Mtodo abreviado para copiar celdas con VBA


En todos los ejemplos anteriores he utilizado el mtodo PasteSpecial para pegar los valores en las celdas destino. Una ventaja de ese mtodo es que puedo elegir si deseo copiar el contenido completo de la celda (xlPasteAll) o solo sus valores (xlPasteValues) sin embargo existe otro mtodo alterno en caso de querer copiar siempre todo el contenido de una celda. Observa el siguiente cdigo:

Este cdigo copia todo el contenido de la celda A1 (incluyendo frmulas y formato) a la celda B1 de la misma hoja. El argumento Destination es el que nos permite especificar el rango en el

cual se pegarn los valores. A continuacin puedes observar, en el mismo bloque de cdigo, diferentes ejemplos utilizando este mismo mtodo abreviado para copiar celdas con VBA:

Como has visto en los ejemplos de este artculo, el primer mtodo que utilizamos nos ofrece una gran flexibilidad a travs del mtodo PasteSpecial el cual nos permite elegir si deseamos pegar todo el contenido de una celda o solo sus valores. Pero si ests seguro de querer copiar siempre todo el contenido de las celdas, entonces el mtodo abreviado, utilizando el argumento Destination del mtodo Copy, ser suficiente para lograr nuestro objetivo. Ahora ya sabes cmo copiar y pegar celdas con VBA y solo es cuestin de que elijas el mtodo adecuado a tus necesidades.

S-ar putea să vă placă și