2016-11-09 10 views
-1

を満たしたときに、それが唯一の列Dの値が0コピー&ペースト私は思っていました

Sub ADDTOORDERS() 
Dim Sh As Worksheet, C As Worksheet, Last As Long 
Set Sh = Sheets("Menu") 
Set C = Sheets("LensOrder") 
With Sh 
Last = .Cells(Rows.Count, 2).End(xlUp).Row 
    .Range("B7:D" & Last).AutoFilter Field:=2, Criteria1:=">0", Operator:=xlAnd 
    .Range("B7:D" & Last).SpecialCells(xlCellTypeVisible).Copy 
    C.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues) 
    Sheets("Menu").Range("C3").Select 
    .Range("B7:D" & Last).AutoFilter 
End With 
End Sub 
+2

範囲の下からループして、条件を満たす値を行ごとに割り当てることができます。範囲をフィルタリングし、可視セルをコピーして貼り付けることができます。 –

+0

理想的には、ボタンをクリックするだけでシームレスにしたいと思っていたので、私はこのコードに作業をしたいと思っていました。 –

+0

@ScottCraner:なぜ「範囲の底から」?私は興味があり、あなたの専門知識が疑う余地がないからと言っています。 – CMArg

答えて

1
dim i as Long 

for i = 7 to 68 
    If Sheets("Menu").Range("D" & i).Value > 0 Then 
     Sheets("Menu").Range("B" & i & ":D" & i).Copy 
     Sheets("LensOrder").Range("A" & Rows.Count).End(xlUp).Offset(1,0).PasteSpecial (xlPasteValues) 
    End If 
Next i 
の値を超えた行をコピーするように、誰もが、私は以下のコードを修正することができます方法を知っているかどう