重复宏代码

时间:2013-01-18 18:03:09

标签: excel vba excel-vba

我录制了这个宏:

Sheets("Sheet1").Select
Range("D4:E4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("ALB3").Select
Range("C1").Select
ActiveSheet.Paste

我想制作一个循环来重复这个过程。 从范围D4:E4到D200:E200时选择

将其粘贴在ALB3到ALB196的相应工作表名称上。

我在表1中的数据。

列a是工作表名称,列d4和e4,是我要在已创建的每个工作表上粘贴的数据。

1 个答案:

答案 0 :(得分:2)

如果您尝试将范围从一个工作表复制到另一个工作表,则不需要循环,也不需要选择。您可以使用不使用剪贴板的复制语法。

试试这个:

Sub CopyRangeToAnotherSheet()
    Dim source As Worksheet
    Dim target As Worksheet

    Set source = ActiveWorkbook.Sheets("Sheet1")
    Set target = ActiveWorkbook.Sheets("Sheet2")

    source.Range("D4:E200").Copy target.Range("ALB3")

End Sub

要将源范围复制到工作簿中除源工作表之外的所有工作表,请尝试以下操作:

Sub CopyToAllSheets()
    Dim ws As Worksheet

    For Each ws In Worksheets
        CopyRangeToAnotherSheet (ws.Name)
    Next
End Sub

Sub CopyRangeToAnotherSheet(targetName As String)
    Dim source As Worksheet
    Dim target As Worksheet

    Set source = ActiveWorkbook.Sheets("Sheet1")
    Set target = ActiveWorkbook.Sheets(targetName)

    If target.Name <> source.Name Then
        source.Range("D4:E200").Copy target.Range("ALB3")
    End If
End Sub