Удалить пустые столбцы во всех листах - PullRequest
0 голосов
/ 21 октября 2019

Я создал макрос для удаления пустых столбцов с листа.

Как применить его ко всем листам?

Вот код для удаления столбцов:

Sub DeleteColumns()
Dim Col As Integer

 With ActiveSheet.UsedRange
  For Col = .Column + .Columns.Count - 1 To 1 Step -1
   If IsEmpty(Cells(1048562, Col)) And IsEmpty(Cells(1, Col)) Then
    If Cells(1048562, Col).End(xlUp).Row = 1 Then Columns(Col).Delete
   End If
  Next Col
 End With

End Sub

И это тот, который я использовал для удаления пустых строк со всех рабочих листов.

Sub RemoveEmptyRows()

    Dim row As Long
    Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        For row = 10 To 1 Step -1
            If IsError(ws.Cells(row, 4)) Then
                ws.Rows(row).Delete
            ElseIf ws.Cells(row, 4).Value = "" Then
                ws.Rows(row).Delete
            End If
        Next row
    Next ws

End Sub

1 Ответ

0 голосов
/ 21 октября 2019

Слияние этих кодов будет выглядеть так:

Sub RemoveEmptyColumns()

    Dim row As Long
    Dim ws As Worksheet
    Dim Col As Integer

    For Each ws In ThisWorkbook.Worksheets
        For Col = ws.UsedRange.Column + ws.UsedRange.Columns.Count - 1 To 1 Step -1
            If IsEmpty(ws.Cells(1048562, Col)) And IsEmpty(ws.Cells(1, Col)) Then
            If ws.Cells(1048562, Col).End(xlUp).row = 1 Then ws.Columns(Col).Delete
            End If
        Next Col
    Next ws

End Sub
...