Excel VBA:通过CommandButton为所有工作表复制和粘贴数据

时间:2013-05-22 12:33:02

标签: excel vba

我是VBA的新手,需要一些实施工具的帮助:

基本上,我想创建一个CommandButton,它自动复制范围D9:L18并将其粘贴到我的活动工作表的Q9:Y18。此外,一旦我按下按钮,我希望所有其他工作表(大约40个)重复此过程,但两个特定的工作表除外。

你可以帮我一把吗?

非常感谢您的帮助 - 非常感谢。

编辑:

@ Sheet.Range("D12:L18").Select出于某种原因出错 - 也许你可以帮助我?感谢。

Private Sub CommandButton1_Click()
    Dim Sheet As Worksheet

    For Each Sheet In ThisWorkbook.Worksheets
        If Sheet.Name <> "Definitions" And Sheet.Name <> "fx" And Sheet.Name <> "Needs" Then

            Sheet.Range("D12:L18").Select
            Selection.Copy
            Sheet.Range("Q12:Y18").Select
                Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

        End If
    Next
End Sub

1 个答案:

答案 0 :(得分:1)

录制宏以复制和粘贴所需的单元格是获取代码复制单张纸张的最佳方法。

但要在所有工作表中完成工作,请使用:

Private Sub CommandButton1_Click() 
    Dim Sheet As Worksheet 
    For Each Sheet In ThisWorkbook.Worksheets 
        If Sheet.Name <> "Definitions" And Sheet.Name <> "fx" And Sheet.Name <> "Needs" Then 
            Sheet.Range("D12:L18").Copy 
            Sheet.Range("Q12:Y18").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
        End If 
    Next 
End Sub

要添加按钮,请转到Excel中的developer标签,添加ActiveX按钮。 设计模式将打开。双击该按钮,单击它时要运行的代码将显示在VBA编辑器中。将您的复制代码放在Private Sub YourButtonName_Click()方法中。

要使按钮工作,请关闭设计模式。 (这是在excel窗口的开发人员选项卡中完成的)