2017-04-11 3 views
1

現在、次のコードを使用して、オフセットを使用したRange.Copyメソッドを使用して同じ範囲の複数のシートからデータを統合しています。オフセットを使用してRange.Copyメソッドを使用して値を貼り付けるVBA

私は数式の代わりに値のみを貼り付けようとしています。しかし、私もエラー "#REF!"につながる数式を取得します。 誰でも正しい構文で私を助けてくれますか? 私はVBAコーディングの学習を始めました。

For Each ws In Sheets(Array("A", "B", "C", "D", "E")) 
    ws.Activate 
    bottomD = Range("BC" & Rows.Count).End(xlUp).Row 
    Range("BC3:BE" & bottomD).Copy Sheets("Summary").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) 
    Next ws 

答えて

1

値をコピーするpastespecial使用せずにこれを行うことができます選択/起動する必要はありません。

For Each ws In Sheets(Array("A", "B", "C", "D", "E")) 
    With ws.Range("BE3", ws.Cells(ws.Rows.Count, "BC").End(xlUp)) 
     Sheets("Summary").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) _ 
      .Resize(.Rows.Count, .Columns.Count).value = .value 
    End With 
Next ws 
2

あなたは、各シートを活性化し、そしてあなたが直接コピー/ペーストを使用する必要があり、値をない割り当てることができる唯一の

Sub x() 

Dim ws As Worksheet, bottomD As Long 

For Each ws In Sheets(Array("A", "B", "C", "D", "E")) 
    bottomD = ws.Range("BC" & ws.Rows.Count).End(xlUp).Row 
    ws.Range("BC3:BE" & bottomD).Copy 
    Sheets("Summary").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial xlValues 
Next ws 

End Sub 
+0

こんにちはSJR、それは働いた。助けてくれてありがとうございました。 –

0

.PasteSpecialメソッドを使用する必要があります。

Range("BC3:BE" & bottomD).Copy 
Sheets("Summary").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).pastespecial xlPasteValues 
関連する問題