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")