Как да приложите VBA PasteSpecial и да запазите форматирането на източника в Excel

  • Споделя Това
Hugh West

Има обаче ситуации, в които искаме да дублираме нещо повече от просто текст. Можем да копираме всички възможности на Excel от тях, като условно форматиране, валидиране на данни, форматиране на тип данни и естетически характеристики като граници и цветове на клетките. Може би се възхищавате на цветовата схема на колегата си, но се нуждаете от статични данни, или може би формулите са фантастични, но не харесвате цветовата схема.В този урок ще покажем VBA PasteSpecial и запазване на форматирането на източника в Excel.

Изтегляне на работна тетрадка за практика

Изтеглете тази учебна тетрадка, за да се упражнявате, докато четете тази статия.

VBA PasteSpecial.xlsm

4 лесни примера за прилагане на VBA PasteSpecial и запазване на форматирането на източника в Excel

Ще демонстрираме четири примера за използване на специалната функция paste в VBA като запазвате формата на източника в разделите по-долу. Ето примерен набор от данни, който ще използваме за копиране и поставяне.

1. Добавяне на поле за въвеждане чрез използване на VBA PasteSpecial и запазване на форматирането на източника в Excel

Първо и преди всичко. Ще използваме полето, за да изберем диапазон и след това да го поставим в друга клетка. За да направите това, следвайте стъпките по-долу.

Стъпка 1:

  • Първо, натиснете Alt + F11 да започнете Macro .
  • След това щракнете върху Вмъкване, изберете Модул опция.

Стъпка 2:

  • Поставете следния код VBA.
 Sub PasteSpecialKeepFormat() 'деклариране на CopyCell и PasteCell като променлива за обхват Dim CopyCell As Range, PasteCell As Range 'Дайте име на полето за въвеждане xTitleId = "ExcelWIKI" 'Задайте обхвата за копиране, който ще бъде избран от работния лист Set CopyCell = Application.Selection 'Задайте поле за въвеждане, за да вземете обхват, от който да копирате Set CopyCell = Application.InputBox("Изберете обхват за копиране :", xTitleId, CopyCell.Address,Type:=8) 'Задайте поле за въвеждане, за да вземете диапазон, който да поставите Set PasteCell = Application.InputBox("Paste to any blank cell:", xTitleId, Type:=8) 'Команда за копиране на избрания диапазон CopyCell.Copy 'Команда за поставяне на диапазона PasteCell.Parent.Activate 'Команда за поставяне на клетките, за да се запази форматирането на източника PasteCell.PasteSpecial xlPasteValuesAndNumberFormats PasteCell.PasteSpecial xlPasteFormatsApplication.CutCopyMode = False End Sub 

Стъпка 3:

  • Запазете програмата и натиснете F5 за да го стартирате.
  • След появата на 'ExcelWIKI' изберете обхвата $B$4:$C$11 .
  • Кликнете върху ОК .

Стъпка 4:

  • Изберете произволна празна клетка, за да я поставите.
  • След това щракнете върху ДОБРЕ.

  • Следователно ще получите стойността на вмъкване, като запазите формата непроменен.

Прочетете още: Разлика между Paste и Paste Special в Excel

2. Прилагане на VBA PasteSpecial за избор на обхват и запазване на форматирането на източника в Excel

В VBA , можете също така да зададете диапазони и да ги копирате и поставите, като запазите форматирането на източника. Следвайте описаните по-долу стъпки, за да сте го направили.

Стъпка 1:

  • Натиснете Alt + F11 да отворите Macro .
  • Създаване на нов модул от Вмъкване на
  • Просто поставете следното VBA код за обхвата B4:C11 .
 Sub pasteSpecial_KeepFormat() 'изберете обхват за копиране Range("B4:C11").Copy 'изберете клетка за поставяне 'Команда за поставянеSpecial запазване на формата Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Стъпка 2:

  • Накрая запишете програмата и натиснете F5 В резултат на това ще видите промените, както е показано на изображението по-долу.

Прочетете още: Специална функция VBA Paste за копиране на стойности и формати в Excel (9 примера)

Подобни четива

  • Код VBA за сравняване на два листа на Excel и копиране на разликите
  • Excel VBA: Копиране на стойността на клетката и поставяне в друга клетка
  • Как да копирате няколко клетки в друг лист в Excel (9 метода)
  • Excel VBA: Копиране на обхват в друга работна книга
  • [Поправено]: Копирането и поставянето с десния бутон на мишката не работи в Excel (11 решения)

3. Деклариране на променлива чрез прилагане на VBA PasteSpecial и запазване на форматирането на източника в Excel

Чрез деклариране на променливи и задаване на променливи в различни диапазони следвайте стъпките по-долу, за да поставитеSpecial в VBA .

Стъпка 1:

  • Първо, натиснете Alt + F11 да отворите Макрос на VBA .
  • Изберете нов Модул .
  • След това поставете следното Код VBA .
 Sub Copy_Paste_Special() 'Деклариране на променливи Dim copy_Rng As Range, Paste_Range As Range 'Командата за копиране на диапазона Set copy_Rng = Range("B4:C11") 'Командата за поставяне на диапазона Set Paste_Range = Range("E4") copy_Rng.Copy 'Поставяне на командата в pasteSpecial със запазване на формата Paste_Range.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Стъпка 2:

  • След като запазите програмата, натиснете F5 да се изпълнява.
  • Следователно копираният диапазон ще бъде вмъкнат със запазване на форматирането на източника, както преди.

Прочетете още: Как да използвате VBA PasteSpecial за формули и формати в Excel (3 начина)

4. Използвайте VBA PasteSpecial и запазете форматирането на източника в различен работен лист в Excel

В тази част ще говорим за един много важен метод. Защото ще разгледаме как да използваме PasteSpecial в VBA в няколко работни книги. Например ще копираме от 'Sheet4' и го поставете в "Sheet5 ," както е показано в стъпките по-долу.

Стъпка 1:

  • За да отворите Макрос на VBA , натиснете Alt + F11
  • От Вмъкване на изберете раздела Модул.
  • След това поставете следното VBA.
 Private Sub KeepSourceFormat() Application.ScreenUpdating = False 'Деклариране на променливи Dim copyRng As Worksheet Dim pasteRng As Worksheet 'Задайте предназначението на диапазона на променливата Set copyRng = Worksheets("Sheet4") Set pasteRng = Worksheets("Sheet5") 'задайте предназначението на вмъкнатите клетки 'За клетка E4, Rows.count = 5, Offset = 3 Set Destination = pasteRng.Cells(Rows.Count, 5).End(xlUp).Offset(3, 0)'Команда за копиране на диапазона copyRng.Range("B4:C11").Copy 'Команда за поставяне на диапазона Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Стъпка 2:

  • За да стартирате програмата, натиснете F5 след като запазите програмата.
  • Следователно ще получите вмъкнатата стойност в лист 5 със запазване на изходния формат.

Прочетете още: Как да използвате специалната команда Paste в Excel (5 подходящи начина)

Заключение

В заключение се надявам, че вече знаете как да използвате Excel VBA към Paste Special Keep Source Formatting (Вмъкване на специални запазени формати на източника). Всички тези стратегии трябва да бъдат преподадени на вашите данни и да се използват за това. Разгледайте книгата за упражнения и приложете наученото. Мотивирани сме да продължим да изнасяме подобни лекции благодарение на вашата важна подкрепа.

Моля, не се колебайте да се свържете с нас, ако имате някакви въпроси. Моля, споделете вашите мисли в полето за коментари по-долу.

Вашите въпроси ще получат отговор възможно най-скоро от Exceldemy персонал.

Останете с нас и продължавайте да се учите.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.