2016-06-30 11 views
1

ありがとうございました。Excel VBAコピーし、範囲内の条件に基づいて複数の範囲を貼り付けられたセルで動作しません

"Sheet1"と "Sheet2"という2つのシートがあるブックがあります。

"Sheet1"には範囲B14:G65、I14:I65、およびマージ範囲J14:J65があります。マージ範囲内の各マージセルは列J:NまたはJ14:N:14〜J65:N65にまたがります。

同じ範囲の領域のF列の条件を満たす範囲の値を "Sheet2"にコピーする必要があります。

マージされたセルにエラーが発生した場合を除いて、私は以下のマクロがうまく動作します。セルがマージされていない場合、正常に動作します。うまくいけば誰かが私を助けることができます。

行HとPに数式があるので、私は行コピー機能を使用できません:上書きすることができず、Sheet1から行全体を上書きするので、範囲が必要なのです。

Sub Test() 
Dim rng As Range 
Dim lastRow As Long 
Dim cell As Variant 
Dim count As Long 
count = 0 

With ActiveSheet.Previous 
    lastRow = .Range("F" & .Rows.count).End(xlUp).Row 
    Set rng = .Range("F14:F" & lastRow) 

For Each cell In rng 
    If cell.Value = "WIP" Or cell.Value = "WNS" Then 
     Range(cell.Offset(0, -4), cell.Offset(0, 1)).Copy 
     Range("B14").Offset(count, 0).PasteSpecial xlPasteValues 
     Range(cell.Offset(0, 3), cell.Offset(0, 3)).Copy 
     Range("I14").Offset(count, 0).PasteSpecial xlPasteValues 
     Range(cell.Offset(0, 4), cell.Offset(0, 4)).Copy 
     Range("J14").Offset(count, 0).PasteSpecial xlPasteValues 
     count = count + 1 
    End If 
Next 
End With 
End Sub 

答えて

1

私は自分自身の問題を考え出しました。ラインを変更することにより

Range(cell.Offset(0, 4), cell.Offset(0, 4)).Copy 
Range("J14").Offset(count, 0).PasteSpecial xlPasteValues 

Range("J14").Offset(count, 0) = Range(cell.Offset(0, 4), cell.Offset(0, 4)) 
関連する問題