Подобно на работния лист, когато копираме данни и ги поставяме в различен диапазон от клетки, ние имаме специален метод за поставяне, който ни позволява да поставяме данните като себе си или само формулите или само стойностите и по същия начин можем да използваме Paste Special във VBA методът на свойството range, както следва range. поставете special (), като предоставите желания тип в скобите.
Специално поставяне във VBA
Paste Special в Excel служи по много начини в нашата ежедневна работа. Използвайки специална паста, можем да направим много повече неща от обичайните. Копирането и поставянето е навсякъде в компютърния свят. Но поставянето на специално е напредналото нещо в Excel.
Подобно на обикновената специална паста за Excel и във VBA, имаме специален метод за поставяне, за да поставим копираните данни. Копирането на нещата в Excel не е нещо странно за потребителите на Excel, те копират, поставят и в повечето случаи използват специална паста, за да изпълнят целта си по много начини.

В обикновения Excel пастата включва много опции като стойности само за поставяне, формули за поставяне, формати за поставяне и др …

Специално поставяне трябва да поставите, операция, пропуснете празните места и да транспонирате така и във VBA. Имаме всички параметри с метода Paste Special .
Формулата на специална паста във VBA
По-долу е формулата за специална паста във VBA

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

Поставяне на специална операция: Докато поставяте, искате ли да извършите някакъв вид операции като добавяне, изваждане, деление, умножение или никаква.

- (Skip Blanks): Ако искате да пропуснете празните места, тогава можете да изберете TRUE или FALSE.
- (Транспониране): Ако искате да транспонирате данните, можете да изберете TRUE или FALSE.
Примери за специално поставяне в Excel VBA
По-долу са примерите за специална паста във VBA.
Пример # 1 - Поставяне само на стойности, използващи специална функция VBA PasteSpecial
В първия пример ще извършим поставяне само на стойности с помощта на paste special. Да приемем по-долу данните, които имате в името на листа, наречено Данни за продажби.

Сега ще изпълним задачата за копиране и поставяне, като използваме няколко специални метода за поставяне. Следвайте стъпките по-долу.
Стъпка 1: Създайте първо име на макрос.

Стъпка 2: Първо копирайте диапазона A1 до D14 от името на листа „Данни за продажби“. За да копирате диапазона, приложете кода по-долу.
Код:
Обхват ("A1: D14"). Копиране

Стъпка 3: След копиране на данните ще поставим стойностите от G1 до J14. Първо, направете справка с диапазона.
Код:
Обхват ("G1: J14")

Стъпка 4: След като изберете диапазона, трябва да поставим. Затова поставете точка (.) И изберете Специален метод за поставяне.
Код:
Sub PasteSpecial_Example1 () Диапазон ("A1: D14"). Копиране на диапазон ("G1: J14"). PasteSpecial End Sub

Стъпка 5: От падащия списък изберете опцията „xlPasteValues.“
Код:
Sub PasteSpecial_Example1 () Диапазон ("A1: D14"). Копиране на диапазон ("G1: J14"). PasteSpecial xlPasteValues End Sub

Стъпка 6: Сега стартирайте този код с помощта на клавиша F5 или ръчно и вижте какво се случва.

Така че нашият код копира данните от A1 до D14 и ги постави от G1 до J14 като стойности.
Той е изпълнил задачата за пряк път ексел ключ в работен лист ALT + E + S + V .

Пример # 2 - Поставяне на всички с помощта на VBA PasteSpecial
Сега ще видим какво ще се случи, ако изпълним задачата на xlPasteAll.
Код:
Sub PasteSpecial_Example2() Range("A1:D14").Copy Range("G1:J14").PasteSpecial xlPasteAll End Sub
Now, if you run this code manually through the run option or by pressing the F5 key, we will have as it is data.

Example #3 - Paste Formats using VBA PasteSpecial Function
Now we will see how to paste only formats. The Below code would do the job for us.
Code:
Sub PasteSpecial_Example3() Range("A1:D14").Copy Range("G1:J14").PasteSpecial xlPasteFormats End Sub

If you run this code using the F5 key or manually, we will get the only format of the copied range, nothing else.

Example #4 - Paste Column Width using VBA Paste Special
Now we will see how to paste only column width from the copied range. For this, I have increased the column width for one of my data columns.

Apply the below code it will paste only the column width of the copied range.
Code:
Sub PasteSpecial_Example3() Range("A1:D14").Copy Range("G1:J14").PasteSpecial xlPasteColumnWidths End Sub

Run this code and see the difference in the column width.

Now we can see Sales column width has been increased to the column width of our copied range column.
Example #5 - Copy the Data from One Sheet to Another Sheet using VBA Paste Special Option
We have seen how to copy and paste the data on the same sheet. Now we will how to paste from one sheet to another sheet.
Step 1: Before we select the range, we need to tell from which sheet we need to select the data.
Code:
Sub PasteSpecial_Example5() Worksheets ("Sales Data") End Sub

Step 2: After selecting the sheet by its name, then we need to select the range in that sheet. The copy it.
Code:
Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy End Sub

The above code says in the sheet name “Sales Data” copy the Range, (“A1:D14”)
Step 3: Since we are pasting it in a different sheet, we need to select the sheet by its name.
Code:
Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets ("Month Sheet") End Sub

Step 4: Now, in the sheet “Month Sheet,” select the range.
Code:
Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets("Month Sheet").Range ("A1:D14") End Sub

Step 5: Using Paste special, we will be pasting values and format.
Code:
Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets("Month Sheet").Range("A1:D14").PasteSpecial xlPasteValuesAndNumberFormats End Sub

Step 6: We are not only pasting values and format using VBA Paste Special, but we are pasting it as TRANSPOSE as well.
Code:
Sub PasteSpecial_Example5() Worksheets("Sales Data").Range("A1:D14").Copy Worksheets("Month Sheet").Range("A1:D14").PasteSpecial xlPasteValuesAndNumberFormats, Transpose:=True End Sub

Now run this code. It will copy and transpose the data to the “Month Sheet.”

Things to Remember About Excel VBA PasteSpecial Function
- Ако искате да пропуснете празните места, трябва да въведете аргумента като TRUE по подразбиране. Отнема FALSE.
- Ако искате да транспонирате данните, трябва да изберете транспонирането като TRUE.
- Можем да изпълняваме само по една специална паста наведнъж.