Как суммировать столбцы для выбранного диапазона, используя VBA? - PullRequest
6 голосов
/ 21 марта 2012

После того, как я выбрал диапазон, содержащий числовые значения, я хочу через VBA ввести формулу =SUM внизу каждого столбца, то есть в строке после последней выбранной строки.Для каждого столбца следует суммировать все значения в соответствующем столбце всего выделения.

Как я могу это сделать?

Сейчас я использую код, заданный устройством записи макросов: ActiveCell.FormulaR1C1 = "=SUM(R[-10]C:R[-1]C)".Проблема в том, что когда мой диапазон становится больше 10 строк, он не учитывает строки выше 10 нижних.

enter image description here

Ответы [ 3 ]

8 голосов
/ 21 марта 2012

Вот простой подход не VBA.

Выберите ячейки, в которых вы хотите сумму, и нажмите Alt - = .

СНАПШОТ

enter image description here

А вот однострочный код VBA, который делает то же самое.

Sub AutoSum()
    '~~> After you select your range
    Application.CommandBars.ExecuteMso ("AutoSum")
End Sub
6 голосов
/ 21 марта 2012

Это работает:

Sub MakeSums()
    Dim source As Range
    Dim iCol As Long
    Dim nCol As Long
    Dim nRow As Long

    Set source = Selection

    nCol = source.Columns.Count
    nRow = source.Rows.Count
    For iCol = 1 To nCol
        With source.Columns(iCol).Rows(nRow).Offset(1, 0)
            .FormulaR1C1 = "=SUM(R[-" & nRow & "]C:R[-1]C)"
            .Font.Bold = True
        End With
    Next iCol

End Sub

Пример:

enter image description here

1 голос
/ 21 марта 2012

Вы также можете сделать что-то подобное без VBA:

=SUM(OFFSET(INDIRECT(CELL("address")),1-ROW(),0,ROW()-1,1))

Суммирует все ячейки выше ячейки, в которой существует формула.

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