Определение количества ячеек в диапазоне и суммы их значений
Применив простой трюк, можно быстро сложить данные из указанного диапазона ячеек. В листинге 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.