Создаём полезный макрос в Excel  
Всё об Excel

+В закладки

Обучение Excel

Макросы в Excel

Программирование в Excel

Как в Excel ...?

Об Авторе

Карта сайта

Простой способ создать таблицу в Excel

Горячие клавиши, которые я использую в Excel

Как посчитать сумму в Excel

Показываю, как создать раскрывающийся список в Excel

Создадим раскрывающийся список Excel

Строим графики и диаграммы в Excel

Как быстро добавить строку или столбец в таблицу

Как изменить размер ячейки в Excel (4 способа)

Создаём полезный макрос в Excel

Макросы в Excel это просто

Строим график в Excel

Что такое Excel

Краткая сводка по любимому Excel

Ставим нумерацию листов (страниц) в Excel

Чем открыть dbf

Как построить график в Excel

Прибиваем шапку таблицы в Excel

Ссылки в Excel

Ставим пароли для защиты данных

Будем учиться программировать в Excel

Отвечаем на вопрос читателя

Ускоряем наши макросы в Excel

Объединяем ячейки в Excel

Xls файлы, чем открывать

Как можно создавать таблицы

Что такое dbf

Как в Excel создать книгу доходов и расходов



Написание процедуры для подсчёта суммы столбца матрицы

Вопросот Дмитрия: Написание процедуры для подсчёта суммы столбца матрицы (6x6).

1. Для начала создадим матрицу, с которой будем работать.

2. Теперь запустим редактор кода VBA (блиц-команда «Alt+F11») и создадим модуль.

3. Далее создадим шаблон для нашей программы (макрос «(Macro()») + функцию «Sum()»).

Sub Macro()

Sum

End Sub

Private Function Sum()

End Function

Таким образом, при запуске макроса «Macro()», он будет запускать функцию (процедуру) Sum.

4.Сейчас осталось написать алгоритм для функции «Sum()».

Sub Macro()

Sum

End Sub

Private Function Sum()

Workbooks("Книга1").Worksheets("Лист1").Activate

i = 1

j = 1

Do While Cells(i, j).Value <> ""

amount = 0

Do While Cells(i, j).Value <> ""

amount = amount + Cells(i, j).Value

i = i + 1

Loop

Cells(i, j).Value = amount

j = j + 1

i = 1

Loop

End Function

Сохраняем наш макрос, после этого редактор VBA можно закрывать. Далее выполняем блиц-команду «Alt+F8» и запускаем макрос.

Результат его работы следующий:

 

Поясним, что делает наша функция.

Во-первых, тут два цикла. Внешний цикл проходим по всем столбцам, внутренний – по всем строкам столбца.

Workbooks("Книга1").Worksheets("Лист1").Activate – активируем лист «Лист1» книги «Книга1».

«i,j» - промежуточные переменные, они определяют координаты ячейки в таблице Excel («i» - номер строки – первое значение, «j» - номер столбца – вторая координата).

«Do While Cells(i, j).Value <> ""» - делай, пока значение ячейки «Cells(i, j).Value» с координатами «(i,j)» не будем равно «пустое». Это начало первого цикла, так мы пройдём по всем столбцам от «A» до «F».

«amount = 0» - переменная, которая будет накапливать сумму значений ячеек в столбце.

«Do While Cells(i, j).Value <> ""» - делай, пока значение ячейки «Cells(i, j).Value» с координатами «(i,j)» не будем равно «пустое». Это начало внутреннего цикла, так мы проходим по всем ячейкам  столбца «j» от «1» до «6».

«amount = amount + Cells(i, j).Value» - накапливаем сумму.

«i = i + 1» - изменяем счётчик, чтобы перейти к следующей строке.

«Cells(i, j).Value = amount» - записываем сумму в конец столбца.

«j = j + 1» - изменяем счётчик, чтобы перейти к следующему столбцу.

«i = 1» - для того, чтобы в новом столбце начать считывать с первой строки.

Программа работает следующим образом, мы запускаем макрос, макрос вызывает функцию (процедуру), которая, собственно, и выполняет подсчёт суммы.

© 2012 - 2017 Всё об Excel
Яндекс.Метрика