Изрязване, копиране и поставяне от макрос - Примери за VBA код

В този урок ще научите няколко различни метода за копиране и поставяне и изрязване и поставяне с помощта на макрос VBA. Прочетете придружаващия урок за Value Pasting и PasteSpecial за по -разширени опции за копиране и поставяне.

За да използвате този код: Отворете редактора на Visual Basic (Alt + F11), Вмъкнете нов модул (Вмъкване> Модул) и копирайте и поставете желания код в модула.

Копирайте (изрежете) и поставете една клетка

Този пример копира или изрязва и поставя една клетка, A1 върху B1:

123456789 Sub Paste_OneCell ()„Копиране и поставяне на единична клеткаДиапазон ("A1"). Обхват на копиране ("B1")„Изрязване и поставяне на единична клеткаДиапазон ("A1"). Обхват на рязане ("B1")End Sub

Копиране на селекцията

Ако искате да копирате активната селекция, използвайте това:

123456789101112 Sub CopySelection ()'Поставяне в определен диапазонSelection.copy range ("b1")'Офсетна паста (компенсира 2 клетки надолу и 1 надясноSelection.copySelection.offset (2,1) .pasteApplication.CutCopyMode = FalseEnd Sub

Копирайте (изрежете) и поставете диапазон от клетки

Този пример копира или изрязва и поставя различни диапазони от клетки, A1: A3 към B1: B3:

123456789 Sub Paste_Range ()„Копирайте и поставете диапазон от клеткиДиапазон ("A1: A3"). Обхват на копиране ("B1: B3")„Изрежете и поставете диапазон от клеткиДиапазон ("A1: A3"). Обхват на рязане ("B1: B3")End Sub

Копирайте (изрежете) и поставете цяла колона

По -долу ще демонстрираме няколко бързи примера. Прочетете нашата статия за копиране и поставяне на редове и колони за подробни примери, обяснения и варианти.

Този пример копира или изрязва и поставя цялата колона, от A до B:

12345678910 Sub PasteOneColumn ()'Копиране и поставяне на колонаДиапазон ("A: A"). Обхват на копиране ("B: B")„Изрязване и поставяне на колонаДиапазон ("A: A"). Cut Range ("B: B")End Sub

Копирайте (изрежете) и поставете цял ред

Този пример копира или изрязва и поставя целия ред, 1 върху 2:

12345678910 Sub Paste_OneRow ()„Копиране и поставяне на редДиапазон ("1: 1"). Обхват на копиране ("2: 2")„Изрежете и поставете редДиапазон ("1: 1"). Обхват на рязане ("2: 2")End Sub

Копирайте (изрежете) и поставете в друг работен лист или работна книга

1234567891011121314 Sub Paste_Other_Sheet_or_Book ()„Изрежете или копирайте и поставете в друг работен листРаботни листове ("лист1"). Диапазон ("A1"). Копиране на работни листове ("лист2"). Диапазон ("B1") 'КопиранеРаботни листове ("лист1"). Диапазон ("A1"). Изрязване на работни листове ("лист2"). Диапазон ("B1") "Изрязване„Изрежете или копирайте и поставете в друга работна книгаРаботни книги ("book1.xlsm"). Работни листове ("лист1"). Диапазон ("A1"). Копиране _Работни книги ("book2.xlsm"). Работни листове ("лист1"). Диапазон ("B1") 'КопиранеРаботни книги ("book1.xlsm"). Работни листове ("лист1"). Диапазон ("A1"). Изрязване _Работни книги ("book2.xlsm"). Работни листове ("лист1"). Диапазон ("B1") "ИзрязванеApplication.CutCopyMode = FalseEnd Sub

Стойност Paste

Обикновено, когато копирате и поставяте, вие поставяте всички свойства на клетка: форматиране, формули и т.н … Вмъкването на стойности ви позволява да копирате и поставяте стойностите на клетките и нищо друго. Най -лесният начин за поставяне на стойност във VBA е да определите стойността на клетката директно:

123456789101112131415 Sub ValuePaste ()„Клетки за поставяне на стойностДиапазон ("B1"). Стойност = Обхват ("A1"). СтойностДиапазон ("B1: B3"). Стойност = Обхват ("A1: A3"). Стойност„Задайте стойности между работните листовеРаботни листове ("лист2"). Диапазон ("A1"). Стойност = Работни листове ("лист1"). Диапазон ("A1"). Стойност„Задаване на стойности между работните книгиРаботни книги ("book2.xlsm"). Работни листове ("лист1"). Диапазон ("A1"). Стойност = _Работни книги ("book1.xlsm"). Работни листове ("лист1"). Диапазон ("A1"). СтойностApplication.CutCopyMode = FalseEnd Sub

Специална паста

Специално поставяне ви позволява да копирате и поставяте специфични свойства на клетки (примери: формати, стойности, ширини на колони и т.н.). Той също така ви позволява да извършвате специални операции с поставяне (примери: пропускане на заготовки, транспониране). Ще разгледаме няколко примера по-долу, но за по-задълбочено прочетете нашия урок за Стойност на поставяне и Специално поставяне.

12345678910111213141516171819 Sub PasteSpecial ()„Извършете една специална операция за поставяне:Диапазон ("A1"). Копиране„Формати за поставянеДиапазон ("B1"). PasteSpecial Paste: = xlPasteFormats„Поставяне на ширините на колонитеДиапазон ("B1"). PasteSpecial Paste: = xlPasteColumnWidths„Поставете формулиДиапазон ("B1"). PasteSpecial Paste: = xlPasteFormulas„Извършете многократно поставяне на специални операции наведнъж:Диапазон ("A1"). Копиране„Поставяне на формати и транспониранеДиапазон ("B1"). PasteSpecial Paste: = xlPasteFormats, Операция: = xlNone, SkipBlanks: = _Неверно, Транспониране: = ВярноApplication.CutCopyMode = FalseEnd Sub

Изчистване на клипборда

След копиране и поставяне може да искате да изчистите клипборда (правим това в някои от примерите за код по -горе). За да изчистите клипборда на Excel, задаваме Application.CutCopyMode на False:

1 Application.CutCopyMode = False

Това ще изчисти клипборда на Excel. Това обаче няма да изчисти буферната памет на Windows. За да изчистите клипборда на прозореца, следвайте инструкциите тук.

wave wave wave wave wave