0

我记录了这个宏:

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 列是我要粘贴到已创建的每个工作表上的数据。

4

1 回答 1

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
于 2013-01-18T18:19:02.573 回答