2016-11-09 1 views
-1

Ich habe mich nur gefragt, ob jemand weiß, wie ich den Code unten ändern kann, so dass es nur die Zeilen kopiert werden, wenn der Wert in der Spalte D einen Wert von 0Copy & Paste, wenn Bereich Kriterien erfüllt

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

Sie können vom unteren Rand Ihres Bereichs eine Schleife erstellen, indem Sie die Werte Zeile für Zeile zuweisen, die Ihren Kriterien entsprechen. Sie können den Bereich filtern und dann die sichtbaren Zellen kopieren und einfügen. –

+0

Idealerweise wollte ich, dass es in diesem Code funktioniert, nur weil ich wollte, dass es für den Benutzer nahtlos ist, nur auf eine Schaltfläche zu klicken und nur die Befehle zu kopieren und einzufügen, denen sie eine QTY als nächstes hinzugefügt haben. –

+0

@ScottCraner: warum "aus dem unteren Bereich"? Ich frage nur, weil ich neugierig bin und Ihre Sachkenntnis zweifelsfrei ist. – CMArg

Antwort

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 
überschreitet
Verwandte Themen