- Копировать (вырезать) и вставлять одну ячейку
- Копировать выделение
- Копировать (вырезать) и вставлять диапазон ячеек
- Копировать (вырезать) и вставлять весь столбец
- Копировать (вырезать) и вставлять всю строку
- Копирование (вырезание) и вставка на другой лист или книгу
- Значение Вставить
- Специальная вставка
В этом руководстве вы изучите несколько различных методов копирования и вставки и вырезания и вставки с использованием макроса VBA. Прочтите сопутствующее руководство «Вставка значений» и «PasteSpecial», чтобы узнать о дополнительных параметрах копирования и вставки.
Чтобы использовать этот код: Откройте редактор Visual Basic (Alt + F11), Вставляем новый модуль (Вставить> Модуль) и скопируйте и вставьте желаемый код в модуль.
Копировать (вырезать) и вставлять одну ячейку
В этом примере копируется или вырезается и вставляется одна ячейка A1 в B1:
123456789 | Sub Paste_OneCell ()'Копировать и вставить одну ячейкуДиапазон ("A1"). Копировать диапазон ("B1")'Вырезать и вставить одну ячейкуДиапазон ("A1"). Диапазон отсечения ("B1")Конец подписки |
Копировать выделение
Если вы хотите скопировать активный выбор, используйте это:
123456789101112 | Sub CopySelection ()'Вставить в определенный диапазонSelection.copy range ("b1")'Offset Paste (смещает 2 ячейки вниз и 1 вправоSelection.copySelection.offset (2,1) .pasteApplication.CutCopyMode = FalseКонец подписки |
Копировать (вырезать) и вставлять диапазон ячеек
В этом примере копируется или вырезается и вставляется диапазон ячеек A1: A3 в B1: B3:
123456789 | Sub Paste_Range ()'Копирование и вставка диапазона ячеекДиапазон ("A1: A3"). Диапазон копирования ("B1: B3")'Вырезать и вставить диапазон ячеекДиапазон («A1: A3»). Диапазон отсечения («B1: B3»)Конец подписки |
Копировать (вырезать) и вставлять весь столбец
Ниже мы продемонстрируем пару быстрых примеров. Прочтите нашу статью о копировании и вставке строк и столбцов, чтобы получить подробные примеры, объяснения и варианты.
В этом примере копируется или вырезается и вставляется весь столбец с A на B:
12345678910 | Sub PasteOneColumn ()'Копировать и вставить столбецДиапазон ("A: A"). Копировать диапазон ("B: B")'Вырезать и вставить столбецДиапазон («A: A»). Диапазон отсечения («B: B»)Конец подписки |
Копировать (вырезать) и вставлять всю строку
В этом примере копируется или вырезается и вставляется целая строка, от 1 до 2:
12345678910 | Sub Paste_OneRow ()'Копировать и вставить строкуДиапазон ("1: 1"). Копировать диапазон ("2: 2")'Вырезать и вставить строкуДиапазон ("1: 1"). Диапазон обрезки ("2: 2")Конец подписки |
Копирование (вырезание) и вставка на другой лист или книгу
1234567891011121314 | Sub Paste_Other_Sheet_or_Book ()'Вырезать или скопировать и вставить на другой листРабочие листы ("sheet1"). Диапазон ("A1"). Копировать рабочие листы ("sheet2"). Range ("B1") 'КопироватьЛисты ("лист1"). Диапазон ("А1"). Вырезать листы ("лист2"). Диапазон ("В1") 'Вырезать'Вырезать или скопировать и вставить в другую книгуРабочие книги ("book1.xlsm"). Рабочие листы ("sheet1"). Диапазон ("A1"). Копировать _Рабочие книги ("book2.xlsm"). Рабочие листы ("sheet1"). Range ("B1") 'КопироватьРабочие тетради ("book1.xlsm"). Рабочие листы ("sheet1"). Диапазон ("A1"). Вырезать _Рабочие тетради ("book2.xlsm"). Рабочие листы ("sheet1"). Диапазон ("B1") 'ВырезатьApplication.CutCopyMode = FalseКонец подписки |
Значение Вставить
Обычно при копировании и вставке вы вставляете все свойства ячейки: форматирование, формулы и т. Д. Вставка значений позволяет копировать и вставлять значения ячеек и ничего больше. Самый простой способ вставить значение в VBA - напрямую определить значение ячейки:
123456789101112131415 | Sub ValuePaste ()'Значение Вставить ячейкиДиапазон ("B1"). Значение = Диапазон ("A1"). ЗначениеДиапазон ("B1: B3"). Значение = Диапазон ("A1: A3"). Значение'Установить значения между листамиРабочие листы ("лист2"). Диапазон ("А1"). Значение = Рабочие листы ("лист1"). Диапазон ("А1"). Значение'Установка значений между книгамиРабочие книги ("book2.xlsm"). Рабочие листы ("sheet1"). Range ("A1"). Value = _Рабочие книги ("book1.xlsm"). Рабочие листы ("sheet1"). Range ("A1"). ValueApplication.CutCopyMode = FalseКонец подписки |
Специальная вставка
Специальная вставка позволяет копировать и вставлять определенные свойства ячеек (примеры: форматы, значения, ширину столбцов и т. Д.). Он также позволяет выполнять специальные операции вставки (примеры: пропускать пробелы, транспонировать). Мы рассмотрим несколько примеров ниже, но для более подробной информации прочтите наш учебник по «Вставка значений» и «Специальная вставка».
12345678910111213141516171819 | Sub PasteSpecial ()'Выполните одну специальную операцию вставки:Диапазон ("A1"). Копировать'Вставить форматыДиапазон ("B1"). PasteSpecial Paste: = xlPasteFormats'Вставить ширину столбцаДиапазон ("B1"). PasteSpecial Paste: = xlPasteColumnWidths'Вставить формулыДиапазон ("B1"). PasteSpecial Paste: = xlPasteFormulas'Одновременное выполнение нескольких специальных операций вставки:Диапазон ("A1"). Копировать'Вставить форматы и транспонироватьДиапазон ("B1"). PasteSpecial Paste: = xlPasteFormats, Operation: = xlNone, SkipBlanks: = _Ложь, Транспонировать: = ИстинаApplication.CutCopyMode = FalseКонец подписки |
Очистить буфер обмена
После копирования и вставки вы можете очистить буфер обмена (мы это делаем в некоторых приведенных выше примерах кода). Чтобы очистить буфер обмена Excel, мы устанавливаем Application.CutCopyMode в False:
1 | Application.CutCopyMode = False |
Это очистит буфер обмена Excel. Однако это не очистит буфер обмена Windows. Чтобы очистить буфер обмена окна, следуйте инструкциям здесь.