Macro do Excel para adicionar, copie e cole na planilha separada

0

Por favor, alguém poderia oferecer alguns conselhos?

Fui solicitado a criar uma planilha básica que incluiria um botão para somar três valores, copiá-los e colá-los em outra planilha e repetir cada vez que o botão for pressionado, com a capacidade adicional de mudar para a próxima linha, de modo que os valores anteriores permanecem. Através de alguns googling e jogando, eu vim com o abaixo. Ele executa a maior parte da função necessária, exceto a parte final - colando-a em uma nova linha toda vez que o botão é pressionado.

Sub Button3_Click()
Range("E9").Formula = "=SUM(E5:E7)"
Worksheets("Sheet2").Visible = True
Dim nextRow As Integer
'Find next empty row on Sheet2
  nextRow = Sheets(2).Range("F" & Rows.Count).End(xlUp).Row + 1
'Copy Sheet1!E5:E9, Transpose to Sheet2
    Sheets(1).Range("E5:E9").Copy
    Sheets("Sheet2").Range("F6:J6").PasteSpecial Transpose:=True

'Copy Sheet1!N20 to Column G
   Sheets(1).Range("N20").Copy Destination:=Sheets(2).Range("G" & nextRow)

End Sub
    
por David Gamble 27.04.2017 / 00:14

1 resposta

0

Sugiro definir explicitamente os nomes:

Sub Button3_Click()

Range("E9").Formula = "=SUM(E5:E7)"
Set wsh2 = Worksheets("Sheet2")
Set wsh1 = Worksheets("Sheet1") 'Sheets(1)? make sure it's the first sheet or use Sheets(1)

wsh2.Visible = True

Dim nextRow As Integer
'Find next empty row on Sheet2
  nextRow = wsh2.Range("F" & Rows.Count).End(xlUp).Row + 1
'Copy Sheet1!E5:E9, Transpose to Sheet2
    wsh1.Range("E5:E9").Copy
    wsh2.Range("F6:J6").PasteSpecial Transpose:=True

'Copy Sheet1!N20 to Column G
   wsh1.Range("N20").Copy Destination:=wsh2.Range("G" & nextRow)

End Sub
    
por 27.04.2017 / 18:12