Как суммировать итоги в нижней части фиксированного столбца на каждом листе vba

#excel #vba

#excel #vba

Вопрос:

Как динамически суммировать итоговые значения из столбца H в нижней части столбца H на каждом листе. Мой код приведен ниже:

     Sub Sum_All()
    Dim ws As Worksheet
    Application.ScreenUpdating = False
    For Each ws In Worksheets
        ws.Select
        Call Sum_This
    Next
    Application.ScreenUpdating = True
    End Sub

    Sub Sum_This()
    Dim LastRow As Long
    With ActiveSheet
    LastRow = Cells(Rows.Count, "H").End(xlUp).Row
    Range("H" amp; LastRow   1).Formula = "=SUM(H2:H" amp; LastRow amp; ")"
    End With
    End Sub
  

Я пытаюсь использовать этот код, но ничего не происходит.

Пожалуйста, помогите.

Ответ №1:

В вашем коде есть несколько проблем.
Возможно, вам нужно проверить, как написать With инструкцию. Кроме того, при использовании For Each для перебора всех листов в данной книге вам необходимо использовать этот синтаксис : For Each ws In myWorkBook.Worksheets , myWorkBook являющийся переменной, относящейся к WorkBook нужной вам.

Попробуйте это :

 Sub Sum_All()
    Dim LastRow As Long
    Application.ScreenUpdating = False
    For Each ws In ThisWorkbook.Worksheets
        LastRow = ws.Cells(Rows.Count, "H").End(xlUp).Row
        ws.Range("H" amp; LastRow   1).Formula = "=SUM(H2:H" amp; LastRow amp; ")"
    Next
    Application.ScreenUpdating = True
End Sub
  

Комментарии:

1. Вы настоящий чемпион Excel, идеальное решение, большое вам спасибо, мистер ромулакс14.

2. Рад, что это сработало, пожалуйста, подумайте о принятии ответа, установив отметку слева от сообщения (меняется с серого на зеленый)