Читаем VBA для чайников полностью

<p>Использование в коде объектов Range для работы с ячейками</p>

Весьма неожиданно, что в Excel нет объекта Cell (Ячейка). Поэтому при написании кода следует руководствоваться следующим подходом: для указания ячейки в VBA-коде используется объект Range. В Excel объект Range может заключать в себе одну или больше ячеек и даже несколько не непрерывных областей листа.

Объект Range в Excel во многом подобен аналогичным объектам в Word, но вместе с тем имеет и существенные отличия. Как и в Word, VBA-программа может ссылаться на любое необходимое число объектов Range. Как в Excel, так и Word, действие программы не ограничивается видимым выделением пользователя, и для воздействия на какую-либо область ее выделять не требуется.

<p>Определение объекта Range</p>

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

Стандартная ссылка на ячейку. Так называемый А1-стиль ссылки на ячейку является, пожалуй, самым простым способом работы с объектами Range. Для определения диапазона необходимо ссылку заключить в кавычки и скобки после ключевого слова Range, как показано в следующем примере:

ActiveSheet.Range("B3")

Worksheets("Sheet 2").Range("M5:S20")

Именованные диапазоны. Если рабочий лист содержит именованные диапазоны, VBA объекты Range могут опираться на них, как показано в следующем примере:

Worksheets("Финансовый отчет").Range("Выплата процентов")

Для присвоения диапазону имени непосредственно в самом коде необходимо употребить следующее выражение с использованием функцией свойства Name (Имя):

Range("A3:В4")-Name = "Прайс-лист"

Сокращенная запись. Вследствие частого использования объектов Range, Excel позволяет упускать ключевое слово Range при определении диапазона при записи в А1 -стиле или при записи с использованием имени. Для реализации такого приема ссылку на ячейку или имя диапазона следует заключить в квадратные скобки, как показано в приведенном ниже примере:

ActiveSheet["Al:Z26"]

["Квартальный отчет"]

Свойство Cells объекта Worksheets. Данная техника крайне необходима профессионалам, так как позволяет определять диапазон не путем указания фиксированных адресов ячейки, а на основе переменных. Основная идея состоит в составлении в цифровом виде списка координат строк и столбцов диапазона. Читайте об этом в разделе "Использование свойства Cells для определения диапазона" дальше в данной главе.

Свойство Selection (Выделение). Когда требуется воздействие кода на диапазон, соответствующий выделению пользователя, используется свойство Selection. Читайте об этом в разделе "Работа с выделениями" дальше в данной главе.

Свойство ActiveCell (Активная ячейка). Свойство Active Cell используется для доступа к диапазону, представляющему активную ячейку данного окна. При использовании без спецификатора объекта (что эквивалентно использованию объекта Application), свойство Active Cell ссылается на активное окно:

ValueStorageBi n = ActiveCell.Value

Свойства Rows (Строки) или Columns (Столбцы) объекта Worksheet. Доступ к диапазону, включающему весь столбец или строку, осуществляется с помощью свойств рабочего листа Rows и Columns с использованием номера указываемого столбца или строки (нельзя адресовать столбец через его буквенное обозначение). В следующем примере определяется диапазон, включающий столбец Е, т.е. пятый столбец:

Workbooks("IOU.xls").Worksheets("Sheetshoot out").Column(5)

Определенные пользователем ссылки на объекты. Поскольку диапазон является объектом, можно установить именованную объектную ссылку на него, после чего доступ к диапазону осуществляется с помощью указания имени ссылки. Данную технику использовать проще и быстрее, чем многократное указание оригинального диапазона. После установки объектной ссылки RanGer, как показано в последующем примере, можно использовать его свойства в таких выражениях, как RanGer . Value:

Dim RanGer As Range Set RanGer = Worksheets("Лист1").Range("B12:H13" )

<p>Использование свойств Cells для определения диапазона</p>

При использовании без координат свойство Cells объекта Worksheets указывает на диапазон, включающий все ячейки данного рабочего листа. По аналогии, свойства Cells объекта Application ( Application. Cells ) ссылаются на все ячейки листа, активного в данный момент (свойство Cells может использоваться само по себе, без указания в явном виде объекта Application).

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

Все книги серии Для чайников

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

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

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

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

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

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

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

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

Все жанры