Листинг 2.37. Последовательный ввод данных

Sub StreamInput()

Dim strDate As String

Dim strSum As String

Dim lngRow As Long

' Ввод данных в цикле (повторяется до тех пор, пока пользователь _

не введет пустую строку или не нажмет «Отмена» в окне ввода)

Do

lngRow = Range(«A65536»).End(xlUp).Row + 1

' Ввод даты

strDate = InputBox(«Вводим дату»)

If strDate = "" Then Exit Sub

' Ввод выручки

strSum = InputBox(«Вводим выручку»)

If strSum = "" Then Exit Sub

' Запись данных в ячейки

Cells(lngRow, 1) = strDate

Cells(lngRow, 2) = strSum

Loop

End Sub

После написания кода макрос Streamlnput будет доступен в окне выбора макросов. Для удобства поместите в любое удобное место интерфейса кнопку и привяжите к ней данный макрос – и можно приступать к последовательному вводу данных.

Введем в ячейки А1 и В1 названия соответствующих столбцов таблицы (например, Дата и Выручка) и нажмем кнопку вызова макроса. В результате откроется диалоговое окно, в котором с клавиатуры сначала вводится дата (в поле Вводим дату), а после нажатия кнопки ОК – сумма выручки (в поле Вводим выручку). После еще одного нажатия кнопки ОК введенные данные отобразятся в ячейках А2 и В2 соответственно, а в диалоговом окне можно вводить следующие данные (которые, в свою очередь, будут помещены в ячейки A3 и ВЗ) и т. д. Для выхода из цикла следует нажать в диалоговом окне кнопку Cancel

<p>Быстрое выделение ячеек с отрицательными значениями</p>

Рассматриваемый в данном подразделе прием позволяет быстро залить красным цветом ячейки выделенного диапазона, содержащие отрицательные значения. Особую значимость данный трюк приобретает при работе с большими объемами информации.

Напишем в стандартном модуле редактора VBA код, который выглядит следующим образом (листинг 2.38).

Листинг 2.38. Выделение отрицательных значений

Sub NegSelect()

Dim cell As Range

' Просмотр всех ячеек выделенного диапазона и пометка тех, _

которые содержат отрицательные значения

For Each cell In Selection

If cell.Value < 0 Then

cell.Interior.Color = RGB(255, 0, 0)

Else

cell.Interior.ColorIndex = xlNone

End If

Next cell

End Sub

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

Очевидно, что путем внесения соответствующих изменений в код макроса можно изменить как условие, так и цвет выделения.

<p>Получение информации о выделенном диапазоне</p>

При необходимости можно быстро получить подробную информацию о выделенном в данный момент диапазоне – в частности, тип выделения, количество выделенных ячеек и областей и т. д. Для этого в стандартном модуле редактора VBA напишем код, который приведен в листинге 2.39.

Перейти на страницу:

Похожие книги