Excel 宏添加,复制粘贴到单独的工作表

Excel 宏添加,复制粘贴到单独的工作表

有人能提供一些建议吗?

我被要求创建一个基本工作表,其中包含一个按钮,用于将三个值相加,将它们复制并粘贴到另一个工作表中,并在每次按下按钮时重复,并增加向下移动到下一行以保留先前值的功能。通过谷歌搜索和尝试,我想出了下面的方法。它执行了大部分所需的功能,除了最后一部分 - 每次按下按钮时将其粘贴到新行。

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

答案1

我建议明确定义名称:

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

相关内容