Estou tentando configurar um código no Excel usando VBA para copiar células maiores que "0" da coluna "H" e colar o conteúdo na célula da coluna "G". Por exemplo, se “H2” for maior que “0”, recorte e cole em “G2” e assim por diante. Não consigo encontrar nada que funcione. Qualquer ajuda seria muito apreciada.
Responder1
Para ajudá-lo um pouco, para copiar e colar usando VBA, veja o seguinte:
Sub Copy_paste()
ThisWorkbook.Sheets("Sheet1").Range("A1").Copy
ThisWorkbook.Sheets("Sheet1").Range("B1").Select
ThisWorkbook.Sheets("Sheet1").Paste
End Sub
Deve ser bastante simples, mas tudo o que for colocado em "A1" é a fonte de onde copiar, e tudo o que for colocado em "B1" é o destino. A propósitocorteem vez decópia de, basta substituir .Copy por .Cut.
Quanto à sua lógica maior que e tal, basta adicionar alguns operadores lógicos em torno do método copiar/colar que mostrei acima. Por exemplo, para copiar A1 para B1 se A1 for maior 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
Observação
Observe também que você pode fazer referência a uma célula de muitas maneiras diferentes. Os itens a seguir são sinônimos se tudo estiver acontecendo na mesma pasta de trabalho:
- ThisWorkbook.Sheets("Planilha1").Range("A1")
- Range("'Planilha1'!A1")
- ThisWorkbook.Sheets("Planilha1").Células(1,1)
- Planilhas("Planilha1").Células(1,1)
- Planilhas("Planilha1").Intervalo("A1")