2016-07-06 4 views
-1

Ich habe ein Arbeitsblatt, das ich die Zeile verschieben muss, wenn der Wert in der letzten Spalte gleich falsch ist. Ich weiß nicht, wie ich zu Blatt 2 gehe und das ganze Blatt durchgehen lasse. Danke für die Hilfe.Verschieben Sie die Zeile in ein anderes Blatt

Sub DeleteMatches2() 
    Dim a As Range, b As Range 
    Dim c As String 
    'The column that has the value is V2 
    With Sheets("Controle Estoque Fixo") 
     Set a = .Range(.Cells(2, "V"), .Cells(Rows.Count, "V").End(xlUp)) 
    End With 

    For Each b In a 
     If b.Value = "False" Then 
      Sheets("Sheet1").Select 
      'know I am lost 

     End If 
    Next 
End Sub 
+4

hast du SO gesucht? Es gibt ein paar Beispiele dafür, wie man das hier macht. Was hast du * eigentlich auch versucht * die Zeile auf ein anderes Blatt zu kopieren? –

+0

Schnelle Notiz, stellen Sie auch sicher, dass Sie '.' vor' Rows.Count' hinzufügen, wenn Sie 'Set' festlegen. Für den nächsten Teil möchten Sie nur die nächste Zeile in Ihrem Sheet2 finden (verwenden Sie eine Variable), dann können Sie ausschneiden/einfügen. Es gibt unzählige Beispiele für das, was Sie hier verlangen. Verwenden Sie einfach das Suchfeld. Ich würde vorschlagen, den Makro-Recorder zu verwenden, ausschneiden/einfügen und sehen, wie dieser Code aussieht, und von dort aus zwicken. – BruceWayne

+1

lol Ich mag, wie Sie 'mit' verwenden, dann weiter mit' Select' XD – findwindow

Antwort

0

Es gibt viele Möglichkeiten, dies zu tun, ist die einfachste einen Zeilenzähler zu halten, die verfolgen, wie viele Zeilen Sie auf dem anderen Blatt verwendet haben. Erhöhen Sie diesen Zähler jedes Mal um eins. Nehmen wir an, Sie Spaltenüberschriften auf sheet1 haben, so dass die erste verfügbare Zeile Zeile 2:

Sub DeleteMatches2() 

    Dim a As Range, b As Range 
    Dim c As String 
    Dim rowCounter As Long 

    rowCounter = 2 ' start at row 2 

    'The column that has the value is V2 
    With Sheets("Controle Estoque Fixo") 
     Set a = .Range(.Cells(2, "V"), .Cells(Rows.Count, "V").End(xlUp)) 
    End With 

    For Each b In a 
     If b.Value = "False" Then 
      'Sheets("Sheet1").Select ' you don't need to select an object to access it, so remove this 
      'here's the bit you need 
      Sheets("Controle Estoque Fixo").Rows(b.row).Cut Sheets("Sheet1").Rows(rowCounter) ' this cuts and pastes all in one line 
      ' you use the row counter to specify the destination 

      rowCounter = rowCounter + 1 ' the next time you'll paste on the next row 

     End If 
    Next 
End Sub 

Da die Menschen dort haben gesagt, dies sind viele viele viele Möglichkeiten zu tun, einen guten Blick auf Stack-Überlauf so haben, etwas anderes könnte appelliere an dich.

Verwandte Themen