Как указать диапазон в excel vba

Содержание

VBA-Урок 4. Работа с диапазонами (Range)

Рассмотрим каким образом мы можем работать с диапазоном. Для этого в Excel существует объект Range, включающий в себя как диапазоны ячеек, так и одну отдельную ячейку. Давайте посмотрим, какие действия мы можем делать над диапазоном.

Выделяем диапазон и определяем его параметры

Сначала попробуем выделить диапазон и определить его параметры:

Данным кодом мы присвоили нашему диапазону cur_range выделены ячейки. Далее, с помощью функции Debug.Print отобразили параметры диапазона в окне предварительного просмотра значений Immediate.

Видим, что адрес диапазона $C$1:$E$5, кол-во колонок — 3 , кол-во строк — 5.

Выделение диапазона с помощью .UsedRange

Давайте рассмотрим как можно выделить наш диапазон другим способом. Для этого воспользуемся .UsedRange

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

Выбор ячеек и диапазонов с помощью процедур Visual Basic в Excel

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Специалисты службы поддержки Майкрософт могут объяснить возможности конкретной процедуры, но они не изменяют эти примеры, чтобы предоставить дополнительные функции или создать процедуры для удовлетворения конкретных требований. В примерах, приведенных в этой статье, используются методы Visual Basic, приведенные в следующей таблице.

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

Выбор ячейки на активном листе

Чтобы выбрать ячейку D5 на активном листе, можно использовать любой из следующих примеров:

Выбор ячейки на другом листе в той же книге

Чтобы выбрать ячейку E6 на другом листе той же книги, можно использовать любой из следующих примеров:

Вы также можете активировать лист, а затем использовать метод 1, чтобы выбрать ячейку:

Выбор ячейки на листе в другой книге

Чтобы выбрать ячейку F7 на листе в другой книге, можно использовать любой из следующих примеров:

Вы также можете активировать лист, а затем использовать метод 1, чтобы выбрать ячейку:

Выбор диапазона ячеек на активном листе

Чтобы выбрать диапазон C2: D10 на активном листе, можно использовать любой из следующих примеров:

Выбор диапазона ячеек на другом листе в той же книге

Чтобы выбрать диапазон D3: E11 на другом листе той же книги, можно использовать любой из следующих примеров:

Вы также можете активировать лист, а затем использовать способ 4 выше, чтобы выбрать диапазон:

Выбор диапазона ячеек на листе в другой книге

Чтобы выбрать диапазон E4: F12 на листе в другой книге, можно использовать любой из следующих примеров:

Вы также можете активировать лист, а затем использовать способ 4 выше, чтобы выбрать диапазон:

Выбор именованного диапазона на активном листе

Чтобы выбрать именованный диапазон "Test" на активном листе, можно использовать любой из следующих примеров:

Выбор именованного диапазона на другом листе в той же книге

Чтобы выбрать именованный диапазон "Test" на другом листе той же книги, можно использовать следующий пример:

Вы также можете активировать лист, а затем использовать метод 7 выше для выбора именованного диапазона:

Выбор именованного диапазона на листе в другой книге

Чтобы выбрать именованный диапазон "Test" на листе в другой книге, можно использовать следующий пример:

Вы также можете активировать лист, а затем использовать метод 7 выше для выбора именованного диапазона:

Выбор ячейки относительно активной ячейки

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

Чтобы выделить ячейку с двумя строками выше и тремя столбцами справа от активной ячейки, можно использовать следующий пример:

При попытке выбрать ячейку, которая находится в состоянии "не на листе", произойдет ошибка. В первом примере, приведенном выше, возвращается сообщение об ошибке, если активная ячейка находится в столбцах A-D, так как при перемещении четырех столбцов влево активная ячейка будет иметь недопустимый адрес ячейки.

Выбор ячейки относительно другой (неактивной) ячейки

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

Выбор диапазона смещения ячеек в указанном диапазоне

Чтобы выбрать диапазон ячеек, размер которых совпадает с именованным диапазоном "Test", но с последующим сдвигом на четыре строки вниз и тремя столбцами вправо, можно использовать следующий пример:

Если именованный диапазон находится на другом (неактивном) листе, сначала активируйте этот лист, а затем выберите диапазон, используя следующий пример:

Выбор указанного диапазона и изменение размера выделенного фрагмента

Для выбора именованного диапазона "Database" и последующего расширения выделенного фрагмента на пять строк можно использовать следующий пример:

Выбор указанного диапазона, его смещение и изменение его размера

Чтобы выбрать диапазон четыре строки ниже и три столбца справа от именованного диапазона "база данных" и включить две строки и один столбец больше, чем именованный диапазон, можно использовать следующий пример:

Выбор объединения двух или более указанных диапазонов

Чтобы выбрать объединение (то есть область объединения) двух именованных диапазонов "Test" и "Sample", можно использовать следующий пример:

чтобы этот пример работал, оба диапазона должны находиться на одном листе. Кроме того, обратите внимание на то, что метод Union не работает на разных листах. Например, эта строка работает нормально.

Возвращает сообщение об ошибке:

Сбой метода Union класса приложения

Как выбрать пересечение двух или более указанных диапазонов

Чтобы выбрать пересечение двух именованных диапазонов "Test" и "Sample", можно использовать следующий пример:

Обратите внимание, что для работы этого примера оба диапазона должны находиться на одном листе.

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

Выбор последней ячейки столбца с непрерывными данными

Чтобы выбрать последнюю ячейку в непрерывном столбце, используйте следующий пример:

Если этот код используется с образцом таблицы, будет выбрана ячейка A4.

Как выделить пустую ячейку в нижней части столбца непрерывных данных

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

Если этот код используется с образцом таблицы, будет выбрана ячейка A5.

Выбор всего диапазона смежных ячеек в столбце

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

Если этот код используется с образцом таблицы, будут выбраны ячейки a1 — A4.

Выбор всего диапазона несмежных ячеек в столбце

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

Если этот код используется с образцом таблицы, он выберет ячейки с a1 по A6.

Выбор прямоугольного диапазона ячеек

Чтобы выбрать прямоугольный диапазон ячеек вокруг ячейки, используйте метод CurrentRegion. Диапазон, выбранный методом CurrentRegion, это область, ограниченная любым сочетанием пустых строк и пустых столбцов. Ниже приведен пример использования метода CurrentRegion.

В этом коде будут выделены ячейки A1 — C4. В других примерах ниже показано, как выбрать один и тот же диапазон ячеек:

В некоторых случаях может потребоваться выделить ячейки a1 — C6. В этом примере метод CurrentRegion не будет работать из-за пустой строки на строке 5. В приведенных ниже примерах будут выбраны все ячейки:

Выбор нескольких несмежных столбцов различной длины

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

При использовании этого кода с образцом таблицы ячейки a1: A3 и C1: C6 будут выбраны.

Примечания к примерам

Обычно свойство Активешит можно опустить, так как оно подразумевает, что конкретный лист не является именем. Например, вместо

Вы можете использовать следующие компоненты:

Также можно опустить свойство Активеворкбук. Если не указана конкретная книга, подразумевается активная книга.

При использовании метода Application. goto, если вы хотите использовать два метода Cell в методе Range, если указанный диапазон находится на другом (неактивном) листе, необходимо включить объект Sheets каждый раз. Например:

Для любого элемента в кавычках (например, именованного диапазона "Test") можно также использовать переменную, значение которой является строкой текста. Например, вместо

Ссылка на основную публикацию