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 に答える