Código Excel VBA para cortar de una celda y pegar en otra

Código Excel VBA para cortar de una celda y pegar en otra

Estoy intentando configurar un código en Excel usando VBA para copiar celdas mayores que "0" de la columna "H" y pegar el contenido en la celda de la columna "G". Por ejemplo, si "H2" es mayor que "0", córtelo y péguelo en "G2", y así sucesivamente. Parece que no puedo encontrar nada que funcione. Cualquier ayuda sería muy apreciada.

Respuesta1

Para ayudarle, para copiar y pegar usando VBA, mire lo siguiente:

Sub Copy_paste()
    ThisWorkbook.Sheets("Sheet1").Range("A1").Copy
    ThisWorkbook.Sheets("Sheet1").Range("B1").Select
    ThisWorkbook.Sheets("Sheet1").Paste
End Sub

Debería ser bastante sencillo, pero lo que se coloque en "A1" es el origen desde el que copiar, y lo que se coloque en "B1" es el destino. Por cierto acortaren lugar deCopiar, simplemente reemplace .Copy con .Cut en su lugar.

En cuanto a su lógica de mayor que y tal, simplemente agregue algunos operadores lógicos alrededor del método copiar/pegar que mostré arriba. Por ejemplo, para copiar A1 a B1 si A1 es mayor que 2:

Sub Copy_paste()
    If ThisWorkbook.Sheets("Sheet1").Range("A1") > 2 Then
        ThisWorkbook.Sheets("Sheet1").Range("A1").Copy
        ThisWorkbook.Sheets("Sheet1").Range("B1").Select
        ThisWorkbook.Sheets("Sheet1").Paste
    End If
End Sub

Nota

También tenga en cuenta que puede hacer referencia a una celda de muchas maneras diferentes. Los siguientes son sinónimos si todo sucede dentro del mismo libro de trabajo:

  • ThisWorkbook.Sheets("Hoja1").Rango("A1")
  • Rango("'Hoja1'!A1")
  • ThisWorkbook.Sheets("Hoja1").Celdas(1,1)
  • Hojas("Hoja1").Celdas(1,1)
  • Hojas("Hoja1").Rango("A1")

información relacionada