创建一个命令按钮以将数据复制并粘贴到另一个工作表中

时间:2018-10-27 13:38:25

标签: excel vba

当我在Excel中单击按钮时,我正在使用下面的代码(位于intrnet上)复制并粘贴一行。

Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    Dim xSheet As Worksheet
    For Each xSheet In ThisWorkbook.Worksheets
        If xSheet.Name <> "Definitions" And xSheet.Name <> "fx" And xSheet.Name <> "Needs" Then
            xSheet.Range("A1:C17 ").Copy
            xSheet.Range("J1:L17").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End If
    Next
    Application.ScreenUpdating = True
End Sub

我如何修改此代码以将数据从名为“ input”的工作表复制到另一个名为“ list”的工作表?

此外,每按一次SUBMIT按钮如何发送一行?

最后一个问题;单元格之一包括= NOW()函数。使用上面的代码复制和粘贴数据时,此单元格显示垃圾数据。如何防止这种情况发生?

2 个答案:

答案 0 :(得分:0)

如果只有两个工作表,则可以直接从一个工作表复制并粘贴到另一个工作表。

Sub copy_range()

Dim FirstSheet As Worksheet
Set FirstSheet = ActiveWorkbook.Worksheets("input")
Dim SecondSheet As Worksheet
Set SecondSheet = ActiveWorkbook.Worksheets("list")

FirstSheet.Range("A1:C17 ").copy
SecondSheet.Range("J1:L17").PasteSpecial Paste:=xlValues 'Only paste values
'SecondSheet.Range("J1:L17").PasteSpecial Paste:=xlPasteAll 'Paste all cell formatting and formulas

End Sub

答案 1 :(得分:0)

使用Worksheets对象按名称访问想要的工作表

并且由于只对值感兴趣,因此可以使用Value个对象的Range属性:

Private Sub CommandButton1_Click()
    Worksheets("list").Range("J1:L17").Value = Worksheets("input").Range("A1:C17").Value
End Sub