VB发布到每个按钮单击新行

时间:2019-04-30 11:11:42

标签: excel vba

我在工作表1上录制了一个宏,该宏链接到按钮。我需要完成的任务:

按下按钮时,将选择某些单元格并将其复制到另一张纸的“摘要”页面上。

Sheet1的下拉菜单显示某些信息。因此,从下拉列表中选择数据后,用户将按下按钮并将该数据发布到摘要表中。

该宏可以正常工作(请注意,我是VBA菜鸟),但是我需要添加功能的帮助,该功能需要在每次按下按钮后将数据复制到下一行-换句话说,如果数据已经在第1行中,它必须将数据放在第2行中,依此类推。

我拥有的VB代码如下:

Sub Test()
'
' Test Macro
'

'
Range("C32:N32").Select
Selection.Copy
Sheets("Summary").Select
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks 
_
    :=False, Transpose:=False
Sheets("Comm Payable").Select
Range("C3:D3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks 
 _
    :=False, Transpose:=False
Sheets("Comm Payable").Select
Range("N1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Summary").Select
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks 
_
    :=False, Transpose:=False
Range("B4").Select
Sheets("Comm Payable").Select
Range("O1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Range("O1").Select
 End Sub

请有人协助上述补充吗?

非常感谢!

1 个答案:

答案 0 :(得分:2)

阅读PEH发布的链接非常必要,因为这样可以大大缩短和加快代码的速度。我想这就是您想要的。

Sub Test()

Dim r As Long

r = WorksheetFunction.Max(Sheets("Summary").Range("D" & Rows.Count).End(xlUp).Row + 1, 3)

Sheets("Comm Payable").Range("C32:N32").Copy
Sheets("Summary").Range("D" & r).PasteSpecial Paste:=xlPasteValues

Sheets("Comm Payable").Range("C3:D3").Copy
Sheets("Summary").Range("B" & r).PasteSpecial Paste:=xlPasteValues

Sheets("Comm Payable").Range("N1").Copy
Sheets("Summary").Range("C" & r).PasteSpecial Paste:=xlPasteValues

Sheets("Comm Payable").Range("O1").ClearContents

End Sub

顺便说一句,直接传输值比复制和粘贴更有效,这是一个示例。

With Sheets("Comm Payable").Range("C32:N32")
    Sheets("Summary").Range("D" & r).Resize(.Rows.Count, .Columns.Count).Value = Value
End With