Dim Диапазон As Range, Адрес As String Dim n As Long, m As Long, i As Long, j As Long
Set Диапазон = Selection 'Проверка того, чтобы выделенная область состояла из одного диапазона If Диапазон.Areas.Count > 1 Then Exit Sub End If 'Нахождение числа строк и столбцов у диапазона n = Диапазон.Rows.Count m = Диапазон.Columns.Count 'Подведение итогов по строкам For i = 1 To n Адрес = Диапазон.Rows(i).Address Диапазон.Cells(i, m).Offset(rowoffset:=0, columnoffset:=1).FormulaLocal = _ "=СУММ(" & Адрес & ")" Next i
For j = 1 To m Адрес = Диапазон.Columns(j).Address Диапазон.Cells(n, j).Offset(rowoffset:=1, columnoffset:=0).FormulaLocal = _ "=СУММ(" & Адрес & ")" Next j
Адрес = Диапазон.Address Диапазон.Cells(n, m).Offset(rowoffset:=1, columnoffset:=1).FormulaLocal = _ "=СУММ(" & Адрес & ")"
End Sub
[/vba] PS. Я сделал объявление переменных, т.к. без этого не делаю макросы. Объявления не обязательны, если Вам удобно без объявления переменных, но могут быть скрытые ошибки.
[vba]
Код
Sub ПодведениеИтогов2()
Dim Диапазон As Range, Адрес As String Dim n As Long, m As Long, i As Long, j As Long
Set Диапазон = Selection 'Проверка того, чтобы выделенная область состояла из одного диапазона If Диапазон.Areas.Count > 1 Then Exit Sub End If 'Нахождение числа строк и столбцов у диапазона n = Диапазон.Rows.Count m = Диапазон.Columns.Count 'Подведение итогов по строкам For i = 1 To n Адрес = Диапазон.Rows(i).Address Диапазон.Cells(i, m).Offset(rowoffset:=0, columnoffset:=1).FormulaLocal = _ "=СУММ(" & Адрес & ")" Next i
For j = 1 To m Адрес = Диапазон.Columns(j).Address Диапазон.Cells(n, j).Offset(rowoffset:=1, columnoffset:=0).FormulaLocal = _ "=СУММ(" & Адрес & ")" Next j
Адрес = Диапазон.Address Диапазон.Cells(n, m).Offset(rowoffset:=1, columnoffset:=1).FormulaLocal = _ "=СУММ(" & Адрес & ")"
End Sub
[/vba] PS. Я сделал объявление переменных, т.к. без этого не делаю макросы. Объявления не обязательны, если Вам удобно без объявления переменных, но могут быть скрытые ошибки.Karataev
Пользователь выделяет фрагмент "B2:E4" - запускает макрос из поста 2 - после работы макроса на листе появятся формулы в этих фрагментах: 1) B5:E5 2) F2:F4 3) F5
Отличие моего кода от Вашего в том, что у Вашего макроса во время работы макроса изменялась активная ячейка. В моем макросе такого нет.
Пользователь выделяет фрагмент "B2:E4" - запускает макрос из поста 2 - после работы макроса на листе появятся формулы в этих фрагментах: 1) B5:E5 2) F2:F4 3) F5
Отличие моего кода от Вашего в том, что у Вашего макроса во время работы макроса изменялась активная ячейка. В моем макросе такого нет.Karataev
Сообщение отредактировал Karataev - Воскресенье, 16.10.2016, 12:01