Vba Excel копирует диапазон ячеек в другую книгу

Обновлено: 06.07.2024

Одно из наиболее распространенных действий, которое вам необходимо освоить, — это копирование и вставка диапазона данных. Это очень легко сделать вручную. В обычных данных мы используем либо CTRL + C, чтобы скопировать выбранные данные, а затем используем CTRL + V, чтобы вставить выбранные данные в целевую ячейку. Это так же просто скопировать и вставить через VBA.

Оглавление

Метод Range.Copy

Метод Range.Copy — это очень удобный метод для копирования и вставки диапазона в место назначения в одной строке кода. Все форматирование и формулы будут скопированы и вставлены.

Синтаксис

Место назначения указывать необязательно. Если этот аргумент опущен, Microsoft Excel копирует диапазон в буфер обмена. Он возвращает вариант.

Пример 1. Копирование диапазона и вставка на другой лист

Приведенный ниже код копирует Лист1 A1 в Лист2 B1.

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

Пример 2: копирование строки

Приведенный ниже код копируется из строки Sheet1 1:2 в строку Sheet2 6.

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

Пример 3: скопировать строку и вставить в новую вставленную строку

Пример 4: копирование столбца

Приведенный ниже код копирует столбец Лист1 A:B в столбец Лист2 B:C (поскольку он вставляется в B1).

Пример 5: копирование нескольких диапазонов в новую книгу

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

Приведенный ниже код скопируйте range1 и вставьте в A1 новой книги.

Пример 6: аргумент назначения опущен

В следующем примере кода проверяется значение в столбце D для каждой строки на листе Sheet1. Если значение в столбце D равно A, вся строка копируется на SheetA в следующей пустой строке. Если значение равно B, строка копируется на SheetB.

Метод Range.PasteSpecial

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

Синтаксис

Возвращает вариант.

Параметры

< tbody>
Имя Обязательный/Необязательный Тип данных Описание
Вставить Необязательный XlPasteType Указывает часть диапазона для вставки.< /td>
Операция Необязательно XlPasteSpecialOperation Указывает, как будут обрабатываться числовые данные. рассчитывается с помощью ячеек назначения на рабочем листе.
SkipBlanks Необязательно Вариант Верно, чтобы пустые ячейки в диапазоне в буфере обмена не вставлялись в целевой диапазон. Значение по умолчанию — False.
Транспонировать Необязательно Вариант True для транспонирования строк и столбцов при вставке диапазона. Значение по умолчанию — False.
Перечисление XlPasteType
Имя Значение Описание
xlPasteAll -4104 Все будет вставлено.
xlPasteAllExceptBorders 7 Все за исключением границ, которые будут вставлены.
xlPasteAllMergingConditionalFormats 14 Все будет вставлено, а условные форматы будут объединены.
xlPasteAllUsingSourceTheme 13 Все будет вставлено с использованием исходной темы.
xlPasteColumnWidths 8 Ширина скопированного столбца вставлена.
xlPasteComments -4144 Комментарии вставлены.
xlPasteFormats -4122 Вставлен скопированный исходный формат.
xlPasteFormulas -4123 Формулы вставлены.
xlPasteFormulasAndNumberFormats 11 Формулы и числовые форматы вставляются.
xlPasteVali дата 6 Проверки вставлены.
xlPasteValues -4163 Значения вставляются.
xlPasteValuesAndNumberFormats 12 Вставляются форматы значений и чисел.
Перечисление XlPasteSpecialOperation
Имя Значение Описание
xlPasteSpecialOperationAdd 2 Скопированные данные будут добавлены к значению в ячейке назначения.
xlPasteSpecialOperationDivide 5< /td> Скопированные данные разделят значение в ячейке назначения.
xlPasteSpecialOperationMultiply 4 Скопированные данные будут умножьте значение в ячейке назначения.
xlPasteSpecialOperationNone -4142 В операции вставки не будет выполняться никаких вычислений.
xlPasteSpecialOperationSubtract 3 Скопированные данные будут вычтены из значения в ячейке назначения.

Пример 1: вставка значений

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

Пример 2: вставка форматов

Пример 3: вставка формул

Пример 4. Копирование и вставка всей строки

Пример 5. Умножение

В этом примере данные в ячейках A1:C2 на Листе1 заменяются умножением существующего содержимого и ячеек D1 на Листе1.

Код VBA

Результат

Пример 6: Добавить

В этом примере данные в ячейках D1:D2 на Листе1 заменяются суммой существующего содержимого и ячеек A1:A2 на Листе1.

Код VBA

Результат

Оставить ответОтменить

О методе Range.Copy, пример 6
что делать, если я хочу, чтобы код проверял, соответствует ли значение на листе1 диапазону значений в столбце на листе2, тогда он должен скопировать диапазон в листе1 и вставить в лист2? Пожалуйста, помогите. Спасибо.

Я оценщик. Я получаю продажи, активные, ожидающие и условные списки от MLS. Я просто пытаюсь скопировать соответствующую дату и цену из столбца MLS (который объединяет все) в набор из двух столбцов для каждого типа листинга. Я хочу сделать графики и статистику для каждого типа. Итак, если у меня есть пять активных списков, нажатие кнопки скопирует данные для этих пяти списков в столбцы с активной датой и ценой. Если у меня есть три ожидающих продажи, он должен скопировать данные из списка в столбцы для ожидающих продаж. Это не должно быть так сложно. Но ничего из того, что я пробовал, не сработало. . … Раньше я делал в Access всевозможные вещи. Но я совсем не фанат Excel.

Листы("Лист1").Range("A1:B1").Copy (Листы("Лист2").Range("B1")) При использовании этой строки кода я получаю ошибку времени выполнения 9. Индекс вне диапазона. Может ли кто-нибудь помочь мне с этим?

Привет!
Пожалуйста, помогите мне написать команду VBA, чтобы скопировать текст в ячейку X и вставить его в «ссылку на ячейку» в ячейке Y.
т.е. Ячейка Y имеет «ссылку на ячейку B4», я хочу написать команду для копирования ячейки X, выбрав местоположение из ячейки Y и вставив ее в ячейку B4. (вставьте местоположение, указанное в ячейке Y — оно будет меняться по мере необходимости)
Спасибо за вашу помощь
Сэм

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

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

С диапазонами в VBA можно выполнять множество различных действий (например, выбирать, копировать, перемещать, редактировать и т. д.).

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

Приступим.

Все коды, которые я упоминаю в этом руководстве, необходимо поместить в редактор VB. Перейдите в раздел «Куда поместить код VBA», чтобы узнать, как это работает.

Если вы заинтересованы в простом изучении VBA, ознакомьтесь с моим онлайн-обучением Excel VBA.

Это руководство охватывает:

Выбор ячейки/диапазона в Excel с помощью VBA

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

В большинстве случаев лучше не выбирать ячейки или диапазоны (как мы увидим).

Несмотря на это, важно, чтобы вы ознакомились с этим разделом и поняли, как он работает. Это будет иметь решающее значение в вашем изучении VBA, и многие концепции, рассмотренные здесь, будут использоваться в этом руководстве.

Начнем с очень простого примера.

Выбор отдельной ячейки с помощью VBA

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

В приведенном выше коде есть обязательные части «Sub» и «End Sub», а также строка кода, которая выбирает ячейку A1.

Range("A1") сообщает VBA адрес ячейки, на которую мы хотим сослаться.

Select — это метод объекта Range, который выбирает ячейки/диапазон, указанные в объекте Range. Ссылки на ячейки должны быть заключены в двойные кавычки.

Этот код покажет ошибку, если лист диаграммы является активным листом. Лист диаграммы содержит диаграммы и широко не используется. Поскольку в нем нет ячеек/диапазонов, приведенный выше код не может его выбрать и в конечном итоге покажет ошибку.

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

Но если вы хотите выбрать ячейку на другом листе (скажем, на Листе2), вам нужно сначала активировать Лист2, а затем выбрать ячейку на нем.

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

Обратите внимание, что при обращении к книгам необходимо использовать полное имя вместе с расширением файла (.xlsx в приведенном выше коде). Если книга никогда не сохранялась, вам не нужно использовать расширение файла.

Теперь эти примеры не очень полезны, но позже в этом руководстве вы увидите, как мы можем использовать те же концепции для копирования и вставки ячеек в Excel (с помощью VBA).

Точно так же, как мы выбираем ячейку, мы также можем выбрать диапазон.

В случае диапазона это может быть диапазон фиксированного размера или диапазон переменного размера.

В диапазоне фиксированного размера вы знаете, насколько велик диапазон, и можете использовать точный размер в своем коде VBA. Но с диапазоном переменного размера вы понятия не имеете, насколько велик диапазон, и вам нужно использовать немного магии VBA.

Давайте посмотрим, как это сделать.

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

Вот код, который выберет диапазон A1:D20.

Еще один способ сделать это — использовать приведенный ниже код:

Приведенный выше код берет адрес верхней левой ячейки (A1) и адрес нижней правой ячейки (D20) и выбирает весь диапазон. Этот метод становится полезным, когда вы работаете с диапазонами переменного размера (как мы увидим, когда свойство End будет рассмотрено позже в этом руководстве).

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

Например, приведенный ниже код выберет диапазон A1:D20 на листе Sheet2 в книге Book2.

Что делать, если вы не знаете, сколько там строк. Что делать, если вы хотите выбрать все ячейки, в которых есть значение.

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

Выбор диапазона переменного размера

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

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

Выбрать с помощью свойства CurrentRange

Если вы не знаете, сколько строк/столбцов содержит данные, вы можете использовать свойство CurrentRange объекта Range.

Свойство CurrentRange охватывает все смежные заполненные ячейки в диапазоне данных.

Ниже приведен код, который выберет текущую область, содержащую ячейку A1.

Описанный выше метод удобен, когда все данные представлены в виде таблицы без пустых строк/столбцов.

Ячейки и диапазоны в VBA — свойство currentregion

Но если в ваших данных есть пустые строки/столбцы, он не будет выбирать строки после пустых строк/столбцов. На изображении ниже код CurrentRegion выбирает данные до строки 10, поскольку строка 11 пуста.

Ячейки и диапазоны в VBA — свойство currentregion не выбирает строки после пробела

В таких случаях вы можете использовать свойство UsedRange объекта Worksheet.

Выбрать с помощью свойства UsedRange

UsedRange позволяет ссылаться на любые измененные ячейки.

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

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

Выберите с помощью свойства End

Теперь эта часть действительно полезна.

Свойство End позволяет выбрать последнюю заполненную ячейку. Это позволяет вам имитировать эффект клавиш управления со стрелками вниз/вверх или клавиш управления вправо/влево.

Давайте попробуем понять это на примере.

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

Проблема в том, что данные могут измениться, и вы не знаете, сколько ячеек заполнено. Если вам нужно сделать это с помощью клавиатуры, вы можете выбрать ячейку A1, а затем использовать клавишу Ctrl + стрелка вниз, и она выберет последнюю заполненную ячейку в столбце.

Теперь давайте посмотрим, как это сделать с помощью VBA. Этот метод удобен, когда вы хотите быстро перейти к последней заполненной ячейке в столбце переменного размера

Приведенный выше код перейдет к последней заполненной ячейке в столбце A.

Аналогичным образом вы можете использовать End(xlToRight) для перехода к последней заполненной ячейке в строке.

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

Это можно сделать с помощью приведенного ниже кода:

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

Вспомните приведенный выше пример, в котором мы выбрали диапазон A1:D20, используя следующую строку кода:

Здесь A1 — верхняя левая ячейка, а D20 — нижняя правая ячейка диапазона. Мы можем использовать ту же логику при выборе диапазонов переменного размера. Но поскольку мы не знаем точного адреса нижней правой ячейки, мы использовали свойство End, чтобы получить его.

В Range("A1", Range("A1").End(xlDown)), "A1" относится к первой ячейке, а Range("A1").End(xlDown) относится к последней ячейке. Поскольку мы предоставили обе ссылки, метод Select выбирает все ячейки между этими двумя ссылками.

Аналогичным образом вы также можете выбрать весь набор данных, состоящий из нескольких строк и столбцов.

Приведенный ниже код выберет все заполненные строки/столбцы, начиная с ячейки A1.

В приведенном выше коде мы использовали Range("A1").End(xlDown).End(xlToRight), чтобы получить ссылку на нижнюю правую заполненную ячейку набора данных.

Разница между использованием CurrentRegion и End

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

С помощью свойства End можно указать начальную ячейку. Например, если у вас есть данные в формате A1:D20, но в первой строке есть заголовки, вы можете использовать свойство End, чтобы выбрать данные без заголовков (используя приведенный ниже код).

Но CurrentRegion автоматически выберет весь набор данных, включая заголовки.

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

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

Копировать ячейки/диапазоны с помощью VBA

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

Начнем с простого примера.

Копирование отдельной ячейки

Если вы хотите скопировать ячейку A1 и вставить ее в ячейку D1, это сделает приведенный ниже код.

Обратите внимание, что метод копирования объекта диапазона копирует ячейку (точно так же, как Control +C) и вставляет ее в указанное место назначения.

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

Приведенные выше коды скопируют и вставят в него значение, а также форматирование/формулы.

Как вы могли уже заметить, приведенный выше код копирует ячейку, не выделяя ее. Независимо от того, где вы находитесь на листе, код скопирует ячейку A1 и вставит ее в ячейку D1.

Кроме того, обратите внимание, что приведенный выше код перезапишет любой существующий код в ячейке D2. Если вы хотите, чтобы Excel сообщал вам, есть ли что-то в ячейке D1, не перезаписывая это, вы можете использовать приведенный ниже код.

Копирование диапазона размеров исправления

Если вы хотите скопировать A1:D20 в J1:M20, вы можете использовать следующий код:

В ячейке назначения вам просто нужно указать адрес верхней левой ячейки. Код автоматически скопирует точный скопированный диапазон в место назначения.

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

Приведенный ниже код скопирует A1:D20 с активного листа на Лист2.

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

Приведенный выше код хорош тем, что независимо от того, какой лист активен, он всегда копирует данные с Листа1 и вставляет их на Лист2.

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

Например, если у вас есть именованный диапазон под названием "Данные о продажах", вы можете использовать приведенный ниже код, чтобы скопировать эти данные на Лист2.

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

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

Вы также можете скопировать диапазон в другую книгу.

В следующем примере я копирую таблицу Excel (Table1) в книгу Book2.

Этот код будет работать, только если рабочая книга уже открыта.

Копирование диапазона переменного размера

Один из способов копирования диапазонов переменного размера — преобразовать их в именованные диапазоны или таблицу Excel и использовать коды, как показано в предыдущем разделе.

Но если вы не можете этого сделать, вы можете использовать свойство CurrentRegion или End объекта диапазона.

Приведенный ниже код скопирует текущую область на активном листе и вставит ее на Лист2.

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

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

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

Назначение диапазонов для переменных объекта

До сих пор мы использовали полный адрес ячеек (например, Workbooks("Book2.xlsx"). Worksheets ("Sheet1"). Range ("A1")).

Чтобы сделать ваш код более управляемым, вы можете назначить эти диапазоны переменным объекта, а затем использовать эти переменные.

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

Начнем с объявления переменных как объектов Range. Затем мы присваиваем диапазон этим переменным с помощью оператора Set. Как только диапазон был назначен переменной, вы можете просто использовать эту переменную.

Введите данные в следующую пустую ячейку (используя поле ввода)

Вы можете использовать поля ввода, чтобы позволить пользователю вводить данные.

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

Приведенный выше код использует поле ввода VBA для получения входных данных от пользователя, а затем вводит входные данные в указанные ячейки.

Обратите внимание, что мы не использовали точные ссылки на ячейки. Вместо этого мы использовали свойства End и Offset, чтобы найти последнюю пустую ячейку и заполнить ее данными.

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

Перебор ячеек/диапазонов

До сих пор мы видели, как выбирать, копировать и вводить данные в ячейки и диапазоны.

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

Например, если вы хотите выделить каждую третью строку в выборе, вам нужно выполнить цикл и проверить номер строки. Точно так же, если вы хотите выделить все отрицательные ячейки, изменив цвет шрифта на красный, вам нужно просмотреть и проанализировать значение каждой ячейки.

Вот код, который будет перебирать строки в выбранных ячейках и выделять альтернативные строки.

Приведенный выше код использует функцию MOD для проверки номера строки в выборе. Если номер строки четный, он выделяется голубым цветом.

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

Обратите внимание, что вы можете сделать то же самое с помощью условного форматирования (это динамический и лучший способ сделать это). Этот пример предназначен только для того, чтобы показать вам, как цикл работает с ячейками и диапазонами в VBA.

Где разместить код VBA

Хотите узнать, где находится код VBA в вашей книге Excel?

Excel имеет серверную часть VBA, которая называется редактором VBA. Вам необходимо скопировать и вставить код в окно кода модуля VB Editor.

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

Как скопировать и вставить в VBA?

Ниже приведены несколько примеров копирования и вставки в Excel с помощью VBA.

Основное, что мы делаем в Excel, — копируем, вырезаем и вставляем данные из одной ячейки в другую. Он также не требует особого представления. Однако при изучении кодирования VBA важно понимать ту же концепцию языка кодирования. Копировать и вставить в VBA — это рутинная задача, которую мы выполняем изо дня в день в Excel. Чтобы сначала скопировать, нам нужно решить, какую ячейку копировать.

Копировать и вставить в VBA

Предположим, что в ячейке A1 есть слово «Excel VBA».

 Пример копирования и вставки VBA 1

Код:

VBA Copy Paste Example 1-1

Код:

После выбора метода нажмите клавишу пробела, чтобы увидеть аргумент метода копирования.

Пример 1-2 копирования и вставки VBA

Там написано "Пункт назначения".

Это ничего, но куда вы хотите копировать и вставлять значения в VBA, не выбирая метод PASTE.

Если мы вставляем данные на тот же лист, мы можем выбрать ячейку с помощью объекта Range. Допустим, если мы хотим вставить значение в ячейку B3, мы можем указать пункт назначения как «Диапазон («B3»)».

Код:

Данные будут скопированы из ячейки A1 и вставлены в ячейку B3.

Мы также можем использовать описанный ниже метод для вставки данных.

Код:

Сначала мы скопируем и выберем данные из ячейки A1 и вставим в ячейку B3.

Теперь, если мы хотим скопировать и вставить значение из разных рабочих листов с помощью макроса VBA, то в аргументе Destination нам нужно указать имя листа с помощью объекта WORKSHEETS, а затем указать диапазон ячеек в этом WORKSHEET. Приведенный ниже код выполнит эту работу.

Код:

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

Во-первых, нам нужно упомянуть копировальный лист.

Затем в аргументе "Назначение" нам нужно указать имя целевого рабочего листа и диапазон ячеек.

Поэтому код должен понравиться.

Код:

Мы увидели, как копировать с листа на другой лист в той же книге. Но мы также можем сделать это из одной книги в другую книгу.

Взгляните на приведенный ниже код.

Код:

Сначала он скопирует данные с листа «Лист1» в книгу «Книга1.xlsx» из ячейки A1.

Затем он активирует книгу «Книга 2.xlsx».

В активной книге будет выбран лист «Лист 2».

Теперь он будет вставлен на активный лист.

Альтернативный способ использования Copy-Paste в VBA

У нас есть еще один альтернативный способ передачи данных из одной ячейки в другую. Предположим, у вас есть слово «Excel VBA» в ячейке A1, и вам нужно, чтобы оно появилось в ячейке B3.

 Альтернативный пример 3

Одним из рассмотренных нами методов является использование метода копирования и вставки VBA. Сейчас я покажу вам один из альтернативных способов. Посмотрите на приведенный ниже фрагмент кода, чтобы понять.

Код:

Выше сказано, что любое значение в ячейке A1 должно быть равно значению в ячейке B3.

Несмотря на то, что это не метод копирования и вставки, мы тем не менее ценим наши знания в области кодирования.

Основные способы копирования и вставки значений в VBA

Теперь мы увидим различные способы копирования и вставки значений VBA. Предположим, вы находитесь в ячейке A1, как показано на изображении ниже.

Код:

ИЛИ

  • Если вы хотите скопировать весь используемый диапазон рабочего листа, вы можете использовать приведенный ниже код.

Код:

При этом весь используемый диапазон будет скопирован на лист «Лист1» и вставлен на лист «Лист2».

Рекомендуемые статьи

Это руководство по копированию и вставке VBA. Здесь мы обсудим лучшие способы копирования и вставки в VBA, а также примеры и загружаемый шаблон Excel. Ниже приведены некоторые полезные статьи Excel, связанные с VBA –




< /p>



< /p>

Как скопировать выбранный диапазон в новую книгу в Excel?

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

Скопировать выбранный диапазон в новую книгу с кодом VBA

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

<р>1. Выберите диапазон, который нужно скопировать в новую книгу.

<р>2. Нажмите одновременно клавиши Alt + F11, чтобы открыть окно приложения Microsoft Visual Basic.

<р>3. В окне приложения Microsoft Visual Basic щелкните Вставить > Модуль. Затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.

Код VBA: скопировать выбранный диапазон в новую книгу

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

<р>3. Нажмите клавишу F5, чтобы запустить код.

<р>4. Затем создается новая книга с выбранным содержимым диапазона, указанным внутри, сохраните эту книгу вручную.

Скопируйте выбранный диапазон в новую книгу с помощью Kutools for Excel

В этом разделе мы познакомим вас с утилитой «Экспорт диапазона в файл» Kutools for Excel. С помощью этой утилиты вы можете легко экспортировать выбранный диапазон в новую книгу.

Перед применением Kutools for Excel сначала загрузите и установите его.

<р>1. Выберите диапазон, который вы хотите скопировать в новую книгу, затем нажмите Kutools Plus > Импорт / Экспорт > Экспорт диапазона в файл.


<р>2. В диалоговом окне «Экспорт диапазона в файл» сделайте следующее.


2.3) Нажмите кнопку, чтобы выбрать папку для сохранения нового файла;


Примечания:

<р>1. Если вы хотите преобразовать все формулы в выбранном диапазоне в значения в новой книге, установите флажок «Преобразовать формулы в значения» в разделе «Параметры книги»; а параметры Сохранить форматирование, сохранить высоту строк и сохранить ширину столбцов помогут сохранить все форматирование, высоту строк и ширину столбцов выбранного ранга в новой книге.

<р>2. Установите флажок Открыть файл после экспорта, новая книга с выбранным содержимым диапазона откроется сразу после экспорта.

<р>3. Затем появится диалоговое окно, введите имя файла и нажмите кнопку ОК.


Затем выбранный диапазон немедленно экспортируется как новая книга Excel.

Если вы хотите получить бесплатную пробную версию (30 дней) этой утилиты, нажмите, чтобы загрузить ее, а затем перейдите к выполнению операции в соответствии с указанными выше шагами.

Читайте также: