0

複数のワークシートのデータを要約ワークシートに統合するのに問題があります。データを貼り付けた場合を除いて、すべてのデータをコピーできます。以前のデータは上書きされます。シート A のサンプル データは、A2 の範囲から始まる再コンパイル シートに貼り付けられます。問題は、シート B、C、D などのデータも範囲 A2 から貼り付けられ、互いに上書きされることです。これは私のコードです。

   Private Sub CommandButton2_Click()
   Dim Sheetname, myrange As String
   Dim A, noOfrows As Integer
   Dim startRow As Integer

   For i = 2 To Worksheets("Master Sheet").Cells.SpecialCells(xlCellTypeLastCell).Row

   Sheetname = Worksheets("Master Sheet").Cells(i, 27).Value'All the sheets that suppose to transfer to recompile sheet 
     noOfrows = Worksheets(Sheetname).Cells.SpecialCells(xlCellTypeLastCell).Row
     myrange = "A2:N" & CStr(noOfrows)
     Worksheets(Sheetname).Select
     Worksheets(Sheetname).Range(myrange).Select
     Selection.Copy
     Sheets("Recompile").Select         
     Range("A2").Select
     ActiveSheet.Paste

     Next i

     End Sub
4

1 に答える 1

0

「再コンパイル」シートで UsedRange を見つけ、その下の範囲に貼り付ける必要があります。

何かのようなもの:

プライベート サブ CopyData()

Dim A As Long
Dim noOfrows As Long
Dim startRow As Long
Dim i As Long

Dim control As Worksheet
Dim source As Worksheet
Dim target As Worksheet

Set control = Worksheets("Master Sheet")
Set target = Worksheets.Add

For i = 2 To control.UsedRange.Rows.Count
    ' the target worksheet for this row of data
    Set source = Worksheets(control.Cells(i, 1).Value) ' My example has this data in column A

    ' the address of a range with (number of rows - 1) for columns A:N
    source.Range("A2:N" & source.UsedRange.Rows.Count).Copy
    target.Range("A" & target.Cells.SpecialCells(xlCellTypeLastCell).Offset(1, 0).Row).PasteSpecial xlPasteValues
Next i

End Sub

ここにたくさんの情報とヒントがあります: http://www.rondebruin.nl/win/s3/win002.htm

于 2013-11-13T09:40:25.183 に答える