Копирует диапазон в указанный диапазон или в буфер обмена. Copies the range to the specified range or to the Clipboard.
Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Interested in developing solutions that extend the Office experience across multiple platforms? Ознакомьтесь с новой моделью надстроек Office. Check out the new Office Add-ins model. У надстроек Office мало места по сравнению с надстройками и решениями VSTO, которые можно создавать с помощью практически любой технологии веб-программирования, например HTML5, JavaScript, CSS3 и XML. Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.
- Синтаксис Syntax
- Параметры Parameters
- Возвращаемое значение Return value
- Пример Example
- Поддержка и обратная связь Support and feedback
- Присвоение диапазона ячеек переменной
- Адресация ячеек в диапазоне
- Работа с диапазоном в переменной
- Пример 1 — работа со значениями
- Пример 2 — работа с форматами
- Пример 3 — копирование и вставка диапазона из переменной
- Размер диапазона в переменной
- VBA Excel. Переменная диапазона ячеек (As Range) : 2 комментария
- Копировать и вставить: наиболее распространенное действие Excel
- Видео № 1: Простой метод «Копировать-вставить»
- Видео № 2: Простой способ вставить значения
- Видео № 3: Метод PasteSpecial
- Скачать файл с примерами
- Вставить данные ниже последней заполненной строки
Синтаксис Syntax
выражение.Copy (Destination) expression.Copy (Destination)
выражение: переменная, представляющая объект Range. expression A variable that represents a Range object.
Параметры Parameters
| Имя Name | Обязательный или необязательный Required/Optional | Тип данных Data type | Описание Description |
|---|---|---|---|
| Destination Destination | Необязательный Optional | Variant Variant | Указывает новый диапазон, в который будет скопирован заданный диапазон. Specifies the new range to which the specified range will be copied. Если этот аргумент опущен, Microsoft Excel копирует диапазон в буфер обмена. If this argument is omitted, Microsoft Excel copies the range to the Clipboard. |
Возвращаемое значение Return value
Пример Example
В следующем примере кода копируются формулы ячеек A1:D4 с листа Sheet1 в ячейки с E5:H8 на листе Sheet2. The following code example copies the formulas in cells A1:D4 on Sheet1 into cells E5:H8 on Sheet2.
В приведенном ниже примере кода проверяется значение столбца D для каждой строки на листе Sheet1. The following code example inspects the value in column D for each row on Sheet1. Если значение в столбце D равно «A», вся строка копируется на лист SheetA в следующую пустую строку. If the value in column D equals A, the entire row is copied onto SheetA in the next empty row. Если значение равно «B», строка копируется на лист SheetB. If the value equals B, the row is copied onto SheetB.
Поддержка и обратная связь Support and feedback
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Присвоение диапазона ячеек объектной переменной в VBA Excel. Адресация ячеек в переменной диапазона и работа с ними. Определение размера диапазона. Примеры.
Присвоение диапазона ячеек переменной
Чтобы переменной присвоить диапазон ячеек, она должна быть объявлена как Variant, Object или Range:
Чтобы было понятнее, для чего переменная создана, объявляйте ее как Range.
Присваивается переменной диапазон ячеек с помощью оператора Set:
В выражении Range(Cells(3, 4), Cells(26, 18)) вместо чисел можно использовать переменные.
Для присвоения диапазона ячеек переменной можно использовать встроенное диалоговое окно Application.InputBox, которое позволяет выбрать диапазон на рабочем листе для дальнейшей работы с ним.
Адресация ячеек в диапазоне
К ячейкам присвоенного диапазона можно обращаться по их индексам, а также по индексам строк и столбцов, на пересечении которых они находятся.
Индексация ячеек в присвоенном диапазоне осуществляется слева направо и сверху вниз, например, для диапазона размерностью 5х5:
| 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 |
Индексация строк и столбцов начинается с левой верхней ячейки. В диапазоне этого примера содержится 5 строк и 5 столбцов. На пересечении 2 строки и 4 столбца находится ячейка с индексом 9. Обратиться к ней можно так:
Обращаться в переменной диапазона можно не только к отдельным ячейкам, но и к части диапазона (поддиапазону), присвоенного переменной, например,
обращение к первой строке присвоенного диапазона размерностью 5х5:
и обращение к первому столбцу присвоенного диапазона размерностью 5х5:
Работа с диапазоном в переменной
Работать с диапазоном в переменной можно точно также, как и с диапазоном на рабочем листе. Все свойства и методы объекта Range действительны и для диапазона, присвоенного переменной. При обращении к ячейке без указания свойства по умолчанию возвращается ее значение. Строки
равнозначны. В обоих случаях информационное сообщение MsgBox выведет значение ячейки с индексом 6.
Важно: если вы планируете работать только со значениями, используйте переменные массивов, код в них работает значительно быстрее.
Преимущество работы с диапазоном ячеек в объектной переменной заключается в том, что все изменения, внесенные в переменной, применяются к диапазону (который присвоен переменной) на рабочем листе.
Пример 1 — работа со значениями
Скопируйте процедуру в программный модуль и запустите ее выполнение.
Обратите внимание, что ячейки диапазона на рабочем листе заполнились так же, как и ячейки в переменной диапазона, что доказывает их непосредственную связь между собой.
Пример 2 — работа с форматами
Продолжаем работу с тем же диапазоном рабочего листа «C6:E8»:
Опять же, обратите внимание, что все изменения форматов в присвоенном диапазоне отобразились на рабочем листе, несмотря на то, что мы непосредственно с ячейками рабочего листа не работали.
Пример 3 — копирование и вставка диапазона из переменной
Значения ячеек диапазона, присвоенного переменной, передаются в другой диапазон рабочего листа с помощью оператора присваивания.
Скопировать и вставить диапазон полностью со значениями и форматами можно при помощи метода Copy, указав место вставки (ячейку) на рабочем листе.
В примере используется тот же диапазон, что и в первых двух, так как он уже заполнен значениями и форматами.
Информационное окно MsgBox добавлено, чтобы вы могли увидеть работу процедуры поэтапно, если решите проверить ее в своей книге Excel.
Размер диапазона в переменной
При получении диапазона с помощью метода Application.InputBox и присвоении его переменной диапазона, бывает полезно узнать его размерность. Это можно сделать следующим образом:
Запустите процедуру, выберите на рабочем листе Excel любой диапазон и нажмите кнопку «OK». Информационное сообщение выведет количество строк и столбцов в диапазоне, присвоенном переменной myRange.
VBA Excel. Переменная диапазона ячеек (As Range) : 2 комментария
Добрый день! Подскажите пожалуйста, как можно задать диапазон (например всего одну строку) для поиска Cells.find.
Привет, Иван!
Для второй строки: Rows(2).Find(stroka)
Для диапазона: Range(«A2:G10»).Find(stroka)
stroka — это переменная или искомый текст в прямых кавычках.
Итог: Изучите 3 различных способа копирования и вставки ячеек или диапазонов в Excel с помощью макросов VBA. Это серия из трех частей, также вы сможете скачать файл, содержащий код.
Уровень мастерства: Начинающий
Копировать и вставить: наиболее распространенное действие Excel
Копирование и вставка, вероятно, является одним из самых распространенных действий в Excel. Это также одна из самых распространенных задач, которые мы автоматизируем при написании макросов.
Есть несколько различных способов выполнить эту задачу, и устройство записи макросов не всегда дает вам наиболее эффективный код VBA.
В следующих трех видео я объясняю:
- Самый эффективный метод для простого копирования и вставки в VBA.
- Самый простой способ вставить значения.
- Как использовать метод PasteSpecial для других типов вставок.
Вы можете скачать файл, который я использую в этих видео ниже. Код также доступен внизу страницы.
VBA Copy Paste.xlsm (91.7 KB)
Видео № 1: Простой метод «Копировать-вставить»
Видео лучше всего просматривать в полноэкранном HD.
Видео № 2: Простой способ вставить значения
Видео № 3: Метод PasteSpecial
Скачать файл с примерами
Загрузите книгу, содержащую все примеры из видео.
VBA Copy Paste.xlsm (91.7 KB)
Вставить данные ниже последней заполненной строки
Один из самых распространенных вопросов, которые я получаю о копировании и вставке с помощью VBA: «Как мне вставить данные в конец таблицы? «
Сначала нужно найти последнюю заполненную строку данных, а затем скопировать и вставить ниже неё.