повторить макрос для всех листов - PullRequest
0 голосов
/ 01 октября 2018
Sub Format()

Dim LastRow As Long

Columns("A:E").Select
Range("A3").Activate
Columns("A:E").EntireColumn.AutoFit
Rows("7:7").Select
Selection.Delete Shift:=xlUp
Range("B16").Select

LastRow = Range("D9").End(xlDown).Row
Cells(LastRow + 1, "D").Formula = "=SUM(D9:D" & LastRow & ")"

End Sub

Я работаю над листом, который требует отчетности для людей с разным количеством таблиц данных с одинаковой структурой.Что делать, если мне нужно повторить код для всех листов.Я являюсь последователем stackoverflow и узнаю очень много вещей из этого форума.

Спасибо, Кешав

1 Ответ

0 голосов
/ 01 октября 2018

Проходные листы

Sub Format()

    Dim LastRow As Long, sh As Worksheet

    For Each sh In Sheets
        With sh
            .Columns("A:E").EntireColumn.AutoFit
            .Rows("7:7").Delete Shift:=xlUp
            LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
            .Cells(LastRow + 1, "D").Formula = "=SUM(D9:D" & LastRow & ")"
        End With
    Next sh
End Sub

Проходные листы, кроме одного

Sub LoopSheetsExceptOne()
    Dim LastRow As Long, sh As Worksheet, ws As Worksheet

    Set ws = Sheets(1)

    For Each sh In Sheets

        If sh.Name <> ws.Name Then

            With sh
                .Columns("A:E").EntireColumn.AutoFit
                .Rows("7:7").Delete Shift:=xlUp
                LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
                .Cells(LastRow + 1, "D").Formula = "=SUM(D9:D" & LastRow & ")"
            End With

        End If

    Next sh

End Sub
...