Какъв е VBA кодът в Excel за изтриване на ред(ове) в колона A:A, ако стойността е по-голяма от 1 за всички листове в работната книга

Какъв е VBA кодът в Excel за изтриване на ред(ове) в колона A:A, ако стойността е по-голяма от 1 за всички листове в работната книга?

Вече имам кода, посочен по-долу, в един макрос, който се изпълнява, може ли някой да ми помогне да напиша този набор, който да бъде добавен към моя?


Sub BOMUpload_Formating()

    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets

        ws.Columns("A:A").EntireColumn.Delete
        ws.Rows("1:5").EntireRow.Delete
        ws.Columns("C:F").EntireColumn.Delete
        ws.Columns("E:M").EntireColumn.Delete

    Next ws

End Sub

Благодаря, Брок


person Brock Wudtke    schedule 14.05.2018    source източник
comment
В този код няма проверка на стойността, трябва да я добавите.   -  person Dominique    schedule 14.05.2018


Отговори (1)


Какво ще кажеш:

Sub RowKiller()
    Dim v As Variant, N As Long, i As Long, rKill As Range
    Dim ws As Worksheet
    For Each ws In Sheets
        N = ws.Cells(Rows.Count, "A").End(xlUp).Row
        If N > 1 Then
            Set rKill = Nothing
            For i = 1 To N
                v = ws.Cells(i, 1).Value
                If IsNumeric(v) Then
                    If v > 1 Then
                        If rKill Is Nothing Then
                            Set rKill = ws.Cells(i, "A")
                        Else
                            Set rKill = Union(rKill, ws.Cells(i, "A"))
                        End If
                    End If
                End If
            Next i
        End If
        If Not rKill Is Nothing Then rKill.EntireRow.Delete
    Next ws
End Sub
person Gary's Student    schedule 14.05.2018