Copiar valores pasados de VBA

Bilal Shahid 21 junio 2023
  1. macros en excel
  2. Trabajo de macros en Microsoft Excel
  3. Demostración de los valores de copiar y pegar de VBA
Copiar valores pasados de VBA

Este tutorial ilustra cómo podemos copiar los valores de una columna a otra dentro de la misma hoja o en una hoja diferente en Excel usando VBA.

macros en excel

Se ha vuelto más fácil realizar tareas repetidas de Excel usando macros escritas en VBA. Podemos escribir Macros para hacer un trabajo específico, y el usuario puede ejecutarlas cuando lo requiera.

Hace que sea más fácil hacer cosas complejas varias veces una y otra vez. Las macros deben codificarse una vez y pueden usarse infinitas veces. Recuerde, debemos escribir Macros de tal manera que mejore la usabilidad.

Intente NO codificar valores en una macro. Es ideal para tomar entradas del usuario para mejorar la usabilidad.

Si está buscando declaraciones de VBA que le permitan copiar los valores de una columna a otra en Excel, debe conocer la definición y el uso de una macro.

Las macros en Microsoft Excel son una característica excelente que automatiza repetidamente las tareas deseadas. En resumen, una Macro es una acción o un conjunto de actividades que el usuario registra para ejecutarla con frecuencia.

Trabajo de macros en Microsoft Excel

Podemos escribir macros de dos maneras en Microsoft Excel. Ambos métodos están diseñados para garantizar la viabilidad del usuario. Estos son los dos enfoques para trabajar con macros en Microsoft Excel:

Enfoque 1: grabar una macro

El método más fácil para realizar una tarea repetidamente con la ayuda de una macro es crear y grabar una. Podemos hacer todo esto solo con la ayuda de algunos clics del mouse y pulsaciones de teclas.

Los pasos para grabar una macro son bastante sencillos. Simplemente siga las instrucciones que se mencionan a continuación:

  1. Abra la pestaña Ver en Microsoft Excel. Debe mostrar una opción para Macros. Al hacer clic en la opción Macros, debería brindarte la opción de ver las diferentes macros que ya se han grabado. Además, también debería permitirle grabar una nueva macro.
  2. Haga clic en la opción Grabar macro y aparecerá una ventana.
  3. Asigne un nombre a la macro y descríbala. Puede crear un acceso directo para una macro específica. Por ejemplo, establecer el atajo como Ctrl + w ejecutará automáticamente la macro cada vez que se llame a este atajo. Por supuesto, esto es opcional, pero se recomienda como una buena práctica.
  4. Registre todas las pulsaciones de teclas y clics del mouse que le gustaría repetir dentro de la macro específica y deje de grabar la macro tan pronto como termine el trabajo.
  5. Siempre que ejecute la macro desde la pestaña Ver o use el acceso directo que definió anteriormente, realizará la misma tarea registrada en la macro.

Grabar una macro con referencias absolutas o referencias relativas

Por defecto, una Macro se graba con direcciones absolutas. Por lo tanto, si copia valores de la columna A a la columna C, la Macro grabada siempre hará la misma tarea.

Si graba la Macro con referencias relativas, actuará en relación con la celda seleccionada; por ejemplo, la Macro graba copiando valores de la columna A a la columna C.

Si se elige la columna W para ejecutar la macro, copiará los valores de la columna W y los pegará en la columna Y. Nuevamente, no olvide utilizar el direccionamiento absoluto o relativo según sus requisitos.

Enfoque 2: escribir una macro

Si desea realizar tareas particulares, como aquellas que requieren la entrada de los usuarios o que proporcionan resultados a los usuarios, debe anotar estas macros.

Grabar una Macro no le permite realizar y generalizar tareas específicas; por lo tanto, puede escribir una macro adaptada a sus necesidades utilizando VBA en Microsoft Excel.

Las instrucciones para escribir una macro son bastante sencillas. Los siguientes pasos definen el procedimiento para escribir una Macro:

  1. Elija el botón Macro en la pestaña Desarrollador en Microsoft Excel.

  2. La opción abre un cuadro de diálogo Macros donde puede acceder a todas las subrutinas VBA o Macro.

  3. Haga clic en el botón Visual Basic para abrir un editor de Visual Basic.

  4. Dentro de este editor, puede escribir el código para su macro, editarlo, probarlo y ejecutarlo. Recuerde, no hay opciones para elegir direcciones absolutas y relativas al escribir una macro.

    Si el código VBA está codificado de forma rígida con valores específicos, se ejecutará de acuerdo con referencias absolutas. Si el código VBA está escrito en general, se ejecutará de acuerdo con las referencias relativas.

Demostración de los valores de copiar y pegar de VBA

Si desea copiar valores de una columna y pegarlos en otra columna existente en la misma hoja o en una hoja diferente, un código VBA simple y fácil puede ser la solución.

El artículo comparte una subrutina para realizar la tarea de copiar y pegar valores de una columna a otra utilizando referencias absolutas y relativas.

El propio usuario puede escribir la función principal y puede incluir la subrutina mencionada en el artículo para realizar la tarea de copiar y pegar valores.

A continuación se mencionan tres soluciones:

Solución 1: Copie los valores de la Columna1 de la Hoja1 a la Columna2 de la Hoja2

Código de ejemplo:

Public Sub CopyPasteValues() 
    Sheets("Sheet1").Columns(1).Copy
    Sheets("Sheet2").Columns(2).PasteSpecial xlPasteValues
End Sub

El código anterior crea una subrutina CopiarPegarValores() que selecciona Columna1 de Hoja1 y la copia. Luego selecciona Columna2 de Hoja2 y pega los valores copiados. El atributo xlPasteValues solo se usa para copiar los valores de las celdas.

Solución 2: Copie los valores de la Columna A de la Hoja 1 a la Columna B de la Hoja 2

Código de ejemplo:

Public Sub CopyPasteValues()
    Sheets("Sheet1").Columns(A).Copy
    Sheets("Sheet2").Columns(B).PasteSpecial xlPasteValues 
End Sub

El código anterior es similar al código mencionado en la primera solución. Es una alternativa a la primera solución para dar una idea al usuario de las múltiples opciones que podemos utilizar para acceder a las columnas de una hoja en Excel.

Solución 3: subrutina con referencias relativas para copiar valores dentro de un rango específico

La tercera solución comparte una subrutina con referencias relativas para copiar valores de un rango específico a otro.

Código de ejemplo:

Public Sub CopyPasteValues() 
    Dim arr1, arr2, i As Integer 
    arr1 = Array("AC", "AD") 
    arr2 = Array("A", "B") 

    For i = LBound(arr1) To UBound(arr1)
        Sheets("Sheet1").Columns(arr1(i)).Copy
        Sheets("Sheet2").Columns(arr2(i)).PasteSpecial xlPasteValues 
    Next

    Application.CutCopyMode = False
End Sub

El código anterior crea una subrutina CopyPasteValues() que utiliza direcciones relativas en el bucle for; por lo tanto, se utilizan variables para ello.

  • El arr1 es el rango específico en Sheet1 que se tiene que copiar.
  • El arr2 es el rango específico en Sheet2 donde pegaremos los valores.
  • La variable i es un contador para el bucle for.

El bucle for copia los valores de la columna AC de la Hoja1 a la columna A de la Hoja2 y continúa la ejecución. Al final del bucle for, se escribe Application.CutCopyMode = False para anular la selección de los rangos específicos de valores que se seleccionan para copiar a la otra hoja.

Entonces, aprendimos que VBA permite a los usuarios escribir macros en Microsoft Excel para realizar tareas frecuentes rápidamente. Podemos grabar Macros así como escribir. También permite que las macros sirvan funcionalidades ilimitadas en Microsoft Excel.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub

Artículo relacionado - VBA Excel