Хотите удалить весь столбец, если в нем <30 строк - PullRequest
1 голос
/ 27 марта 2019

У меня есть несколько столбцов и несколько строк (> 200 строк). Я хотел бы удалить весь столбец, если любой из столбцов имеет <30 строк данных. Пожалуйста, помогите </p>

Sub Delete_EntireColumn()
Dim iCntr
    For iCntr = 1 To 10 Step 1
        Columns(1).EntireColumn.Delete
    Next
End Sub

1 Ответ

2 голосов
/ 27 марта 2019

Попробуйте

Sub Delete_EntireColumn()
Dim LCol as Long, LRow as Long, i as Long

With Workbooks(REF).Sheets(REF)

    LCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    For i = LCol To 1 Step - 1
        LRow = .Cells(.Rows.Count, i).End(xlUp).Row
        If LRow < 30 Then
            .Columns(i).EntireColumn.Delete
        End If
    Next i

End With

End Sub

РЕДАКТИРОВАТЬ

Если строки заполнены не последовательно:

Sub Delete_EntireColumn()
Dim LCol as Long, LRow as Long, i as Long

With Workbooks(REF).Sheets(REF)

    LCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    For i = LCol To 1 Step - 1
        LRow = Application.WorksheetFunction.CountA(.Columns(i))
        If LRow < 30 Then
            .Columns(i).EntireColumn.Delete
        End If
    Next i

End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...