Pegar selección usando VBA

Iqra Hasnain 15 febrero 2024
Pegar selección usando VBA

Este artículo trata sobre cómo podemos copiar y pegar datos de un lugar a otro en una hoja usando VBA.

Pegar selección usando VBA

Copiar y pegar ha simplificado nuestras tareas diarias en Excel. Para tener un buen dominio de la programación VBA, necesitamos aprender la idea de la función de pegado.

Hay muchos métodos para pegar datos de una celda a otra. La primera es usando un operador de asignación, la segunda es con la ayuda de la función pegar y, por último, pero no menos importante, utilizando la función pegar especial.

Estudiemos el método de pegar de VBA grabando una macro. Supongamos que tenemos algunos valores en la celda A1 en Excel; ahora, vamos a copiar y pegar de A1 a B3.

Los siguientes son los pasos que tenemos que seguir para grabar una macro:

  1. Primero, debemos seleccionar el Record Macro que veremos debajo de la pestaña Excel Developer.
  2. Tan pronto como hayamos hecho clic en Grabar macro, aparecerá el nombre de la macro predeterminada. Ahora, solo tenemos que hacer clic en Aceptar.
  3. Ahora, todas nuestras actividades están registradas. A partir de ahora, tenemos que seleccionar la celda deseada, que en nuestro caso es A1, para copiar.
  4. El siguiente paso es presionar el comando Ctrl+C. Esto copiará nuestra celda seleccionada.
  5. Ahora, es el momento de elegir la celda de destino, B3, donde queremos pegar nuestro material copiado usando Excel.
  6. Para pegar, presione el comando Ctrl+V. Ahora, podemos dejar de grabar.

El código para seleccionar la celda A1 se muestra a continuación.

Código:

# vba
Range("A1").Select

Cuando se copia la celda, se selecciona su código. Copiar en lugar de Rango("A1") porque se convierte en una celda activa o una selección después de seleccionar la celda. Así que aquí, en la codificación, aparece como selección.

Ahora, copie la siguiente celda, A1, y péguela. El código se muestra a continuación.

Código:

# vba
Range("B3").Select

Finalmente, se pega nuestro valor.

El código dice Hoja activa porque ha seleccionado la celda para pegar. Aparece como una celda activa de una hoja activa.

El código para este paso usa ActiveSheet.Paste. Esto concluye el método pegar en VBA.

La fórmula es como se muestra a continuación.

Expression.Paste (Dest, Url)

Puede entender la expresión ya que es el nombre de la hoja de trabajo que ha seleccionado para pegar.

Copie y pegue en la misma hoja usando VBA

Ahora, veamos cómo podemos usar el método de pegar de VBA mientras trabajamos en la misma hoja. Supongamos que hemos tomado algunos valores de la celda B1 a la B5.

Aprenderemos a escribir el código de acuerdo a nuestras necesidades. Aquí hay algunos pasos:

El primer paso es copiar el rango de datos deseado para pegar cualquier cosa. Copiaremos el rango de B1 a B5 en nuestro caso, como se muestra a continuación.

Código:

# vba
Sub CopyExample()
Range("B1:B5").Copy
End Sub

Cuando hayamos copiado nuestros valores, debemos indicar dónde queremos pegarlos; para este propósito, elegiremos el nombre de la hoja de trabajo. Como queremos pegar en la misma hoja, usaremos el Objeto de hoja activa, como se muestra a continuación.

Código:

# vba
Sub CopyExample()
Range("B1:B5").Copy
ActiveSheet.Paste
End Sub

Una vez que hemos seleccionado el método pegar, debemos determinar dónde está el destino. En nuestro caso, es el rango D1 a D5, como se muestra a continuación.

Código:

# vba
Sub CopyExample()
Range("B1:B5").Copy
ActiveSheet.Paste Destination:=Range("D1:D5")
End Sub

Producción:

pasta de selección en el ejemplo de vba primero

Podemos ejecutar fácilmente este código presionando la tecla F5, y esto hará el trabajo de copiar datos de B1 a B5 y pegarlos en D1 a D5.

Copiar y pegar propiedades especiales usando VBA

También podemos copiar y pegar propiedades particulares de celdas, por ejemplo, formatos especiales, valores, etc., con la ayuda de esta característica de VBA. Le permite realizar importantes operaciones de pegado como omitir espacios en blanco y transponer.

Veamos un ejemplo en el que intentaremos copiar y pegar algunas propiedades especiales de las celdas que copiamos. Podemos usar xlPasteFormats para pegar solo el formato de las celdas copiadas.

Podemos usar xlPasteColumnWidths para pegar el ancho de las columnas que copiamos. También podemos usar xlPasteFormulas para pegar las fórmulas de nuestras celdas copiadas.

Código:

# vba
Sub SpecialCopying()

Range("B1").Copy

Range("D1").PasteSpecial Paste:=xlPasteFormats

Range("D1").PasteSpecial Paste:=xlPasteColumnWidths

Range("D1").PasteSpecial Paste:=xlPasteFormulas

Application.CutCopyMode = False
End Sub