В результате введенное значение отобразится во всех ячейках выделенного диапазона.
Добавление в ячейку раскрывающегося списка
Одним из удобных способов заполнения ячейки является применение раскрывающегося списка, который включает в себя перечень возможных значений. Чтобы создать в ячейке раскрывающийся список, нужно выполнить следующие действия.
1. Ввести список допустимых значений в один столбец (при необходимости этот столбец можно скрыть).
2. Установить курсор в ячейку, в которую необходимо поместить раскрывающийся список.
3. На вкладке Данные в группе Работа с данными нажать кнопку Проверка данных.
4. В открывшемся окне перейти на вкладку Параметры.
5. В поле Тип данных из раскрывающегося списка выбрать значение Список.
6. В открывшемся поле Источник указать диапазон с элементами списка (то есть столбец, в который были введены допустимые значения, см. п. 1).
7. Проверить, чтобы был установлен флажок Список допустимых значений (обычно этот флажок установлен по умолчанию).
8. Нажать кнопку ОК.
Данная технология создания в ячейке раскрывающегося списка отличается удобством и быстротой, а также тем, что для ее реализации не требуется написание макросов.
Быстрое заполнение диапазона
Рассмотрим несколько несложных трюков, с помощью которых можно быстро заполнить любой диапазон необходимыми данными.
Первый способ
Предположим, что нам необходимо заполнить какой-нибудь диапазон последовательностью чисел от 1 до 100. Для решения этой задачи удобно воспользоваться макросом, код которого приведен в листинге 2.22 (этот код следует набрать в стандартном модуле редактора VBA).
Листинг 2.22. Быстрое заполнение диапазона
Sub FillCells()
Dim intStartVal As Integer ' Начальное значение
Dim intStep As Integer ' Шаг при изменении значения
Dim intEndVal As Integer ' Конечное значение
Dim intVal As Integer ' Текущее значение
Dim intCellOffset As Integer ' Смещение от начальной ячейки
' Установка параметров заполнения
intStartVal = 1
intStep = 1
intEndVal = 100
' Заполнение ячеек текущего столбца значениями от 1 до 100
For intVal = intStartVal To intEndVal Step intStep
ActiveCell.Offset(intCellOffset, 0).Value = intVal
intCellOffset = intCellOffset + 1
Next intVal
End Sub
Сразу после выполнения макроса диапазон, расположенный ниже текущей ячейки (в том же столбце), будет заполнен числами от 1 до 100 (заполнение начнется с активной ячейки).
Приведенный выше код можно изменять по своему усмотрению и таким образом корректировать длину последовательности, шаг и иные параметры. Например, можно применить такой код (листинг 2.23).
Листинг 2.23. Заполнение через интервал
Sub FillCells()
Dim intStartVal As Integer ' Начальное значение
Dim intStep As Integer ' Шаг при изменении значения
Dim intEndVal As Integer ' Конечное значение
Dim intVal As Integer ' Текущее значение
Dim intCellOffset As Integer ' Смещение от начальной ячейки
Dim intCellStep As Integer ' Шаг при перемещении между _
заполняемыми ячейками
' Установка параметров заполнения
intStartVal = 3
intStep = 3
intEndVal = 30
intCellStep = 3
' Заполнение ячеек текущего столбца значениями от 3 до 30
For intVal = intStartVal To intEndVal Step intStep
ActiveCell.Offset(intCellOffset, 0).Value = intVal
intCellOffset = intCellOffset + intCellStep
Next intVal
End Sub
После выполнения данного макроса последовательность будет заполнена числами с 3 до 30, причем числа будут расположены в каждой третьей ячейке следующим образом: 3 (активная ячейка), 6, 9, 12…., 27, 30.
Второй способ
Допустим, что нам нужно быстро заполнить диапазон, состоящий из 10 ячеек в высоту и 5 ячеек в ширину, последовательностью чисел, расположенных по порядку от 1 до 50. Для решения данной задачи напишем в стандартном модуле редактора VBA представленный ниже код (листинг 2.24).
Листинг 2.24. Заполнение указанного диапазона
Sub FillCellRect()
Dim lngRows As Long, intCols As Integer ' Количество ячеек по _
горизонтали и вертикали
Dim lngRows As Long, intCol As Integer ' Координаты текущей
ячейки
Dim lngStep As Long, lngVal As Long
' Установка начального значения и шага заполнения
lngVal = 1
lngStep = 1
' Ввод количества ячеек по горизонтали и вертикали, которое _
необходимо заполнить
lngRows = Val(InputBox(«Количество ячеек в высоту»))
intCols = Val(InputBox(«Количество ячеек в ширину»))
' Отключение обновления экрана
Application.ScreenUpdating = False
' Заполнение ячеек значениями
For lngRow = 0 To lngRows – 1
For intCol = 0 To intCols – 1
ActiveCell.Offset(lngRow, intCol).Value = lngVal
lngVal = lngVal + lngStep
Next intCol
Next lngRow
' Включение обновления экрана
Application.ScreenUpdating = True
End Sub
В результате написания кода будет создан макрос FillCellRect. После его запуска откроется окно, в котором с клавиатуры нужно ввести количество ячеек в высоту (в нашем примере нужно указать значение 10). После нажатия в данном окне кнопки О К откроется аналогичное окно, в котором точно так же нужно ввести количество ячеек в ширину (в нашем примере нужно задать 5) и нажать ОК. После этого в соответствии с выполненными настройками будет автоматически заполнен диапазон, начиная с ячейки, которая была выделена (данная ячейка будет являться левой верхней в заполненном диапазоне). Изменив соответствующим образом код макроса, можно корректировать шаг последовательности, ее первое число (в строке IngVal = 1, которая входит в состав приведенного выше кода, указано, что первое число последовательности – 1) и другие параметры.
Читать дальше
Конец ознакомительного отрывка
Купить книгу