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