Листинг 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.
Подсчет именованных объектов
С помощью небольшого макроса можно быстро подсчитать количество именованных ячеек, диапазонов и формул в текущей рабочей книге. Код данного макроса выглядит следующим образом (листинг 3.29).
Листинг 3.29. Количество именованных объектов
Sub CountNames()
Dim intNamesCount As Integer
' Получаем и отображаем количество имен в активной _
рабочей книге
intNamesCount = ActiveWorkbook.Names.Count
If intNamesCount = 0 Then
MsgBox «Имен нет»
Else
MsgBox "Имен: " & intNamesCount & « шт.»
End If
End Sub
Результат выполнения этого макроса выводится в информационном окне, которое показано на рис. 3.8.
Рис. 3.8. Подсчет количества имен
При необходимости можно подсчитать количество имен рабочей книги. Соответствующий макрос выглядит так (листинг 3.30).
Листинг 3.30. Количество имен рабочей книги
Sub CountNames()
Dim intNamesCount As Integer
' Получаем и отображаем количество имен на активном _
листе рабочей книги
intNamesCount = Names.Count
If intNamesCount = 0 Then
MsgBox «Имен нет»
Else
MsgBox "Имен: " & intNamesCount & « шт.»
End If
End Sub
Для быстрого поиска активной ячейки можно воспользоваться таким макросом (листинг 3.31).
Листинг 3.31. Поиск активной ячейки
Sub FindActiveCell()
' Выводим адрес активной ячейки
MsgBox ActiveCell.Address
End Sub
Результат поиска выводится в информационном окне, пример которого представлен на рис. 3.9.
Рис. 3.9. Адрес активной ячейки
Чтобы убрать значение абсолютной ссылки на строку и столбец, можно использовать следующий код:
MsgBox ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
Поиск начала и окончания диапазона, содержащего данные
Аналогичным образом можно быстро определить диапазон листа, в котором содержатся какие-либо данные. Этот трюк удобно применять, например, когда данные разбросаны по всему листу и точно не известно, где они начинаются и где заканчиваются (а вручную просматривать весь лист долго и неудобно). Для решения подобной задачи можно применить следующий макрос (листинг 3.32).
Листинг 3.32. Поиск данных
Sub FindSheetData()
' Выводим диапазон используемых ячеек листа
MsgBox ActiveSheet.UsedRange.Address
End Sub
В результате выполнения макроса на экране появится окно, аналогичное изображенному на рис. 3.9, в котором будет указан соответствующий диапазон рабочего листа.
Если же необходимо определить не весь диапазон с данными, а найти лишь его начало, то можно воспользоваться макросом, код которого приведен в листинге 3.33.
Листинг 3.33. Поиск начала данных
Sub FindStartOfData()
With ActiveSheet
Читать дальше
Конец ознакомительного отрывка
Купить книгу