Определение количества ячеек в диапазоне и суммы их значений

We use cookies. Read the Privacy and Cookie Policy

Применив простой трюк, можно быстро сложить данные из указанного диапазона ячеек. В листинге 3.26 приведен пример макроса, выполнение которого позволяет решить эту задачу.

Листинг 3.26. Сумма данных диапазона

Sub CalculateSum()

Dim i As Integer

Dim intSum As Integer

' Расчет суммы ячеек столбца "A" (с первой по пятую)

For i = 1 To 5

intSum = intSum + Cells(i, 1)

Next

MsgBox "Сумма ячеек: " & intSum

End Sub

В подобном случае будет рассчитана сумма диапазона ячеек с 1 по 5, которые расположены в столбце А. Результат работы данного макроса представлен на рис. 3.7.

При выполнении этой операции следует учитывать, что если в какой-либо ячейке указанного диапазона будут нечисловые данные, то на экране отобразится сообщение об ошибке. В этом случае целесообразно применить следующий макрос (листинг 3.27).

Рис. 3.7. Рассчитанная сумма диапазона ячеек

Листинг 3.27. Сумма ячеек с числовыми значениями

Sub CalculateSum()

Dim i As Integer

Dim intSum As Integer

' Расчет суммы ячеек столбца "A" (с первой по пятую)

For i = 1 To 5

If IsNumeric(Cells(i, 1)) Then

intSum = intSum + Cells(i, 1)

End If

Next

MsgBox "Сумма ячеек: " & intSum

End Sub

После запуска данного макроса будет рассчитана сумма диапазона ячеек с 1 по 5, расположенных в столбце А, при этом ячейки с нечисловыми значениями будут проигнорированы.

При необходимости можно подсчитать количество ячеек, которые находятся в разных выделенных диапазонах. В листинге 3.28 показан пример макроса, который позволяет это сделать.

Листинг 3.28. Подсчет количества ячеек

Sub CountOfCells()

MsgBox (Range(«A1:A20, D1:D20»).Count)

End Sub

После выполнения данного макроса на экране отобразится окно, в котором будет указано общее количество ячеек в диапазонах А1:А20 и D1:D20.