Читаем Excel. Трюки и эффекты полностью

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

Третий способ

Данный способ заполнения диапазона также предусматривает написание макроса. Его преимущество состоит в том, что он быстрее способа, о котором рассказано в предыдущем примере. Код макроса (он должен быть написан в стандартном модуле редактора VBA) выглядит следующим образом (листинг 2.25).

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

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

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Мейерс , Скотт Майерс

Программирование, программы, базы данных / Программирование / Книги по IT