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

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

Съдържание

Когато трябва да копираме и поставим някакви данни в Microsoft Excel, разполагаме с различни бързи клавиши и инструменти на лентата в Excel. VBA Macro също имат такова съоръжение, а не опции за работна книга. Ще обсъдим VBA Paste Special стойности и формати в Excel.

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

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

Стойности и формати при използване на PasteSpecial.xlsm

9 примера за копиране на стойности и формати с Paste Special в Excel VBA

В тази статия ще обсъдим 9 метода с Макроси VBA за Специално поставяне стойности и формат в Excel.

За тази цел ще разгледаме набора от данни по-долу.

1. Прилагане на InputBox във VBA Paste Special за копиране на стойности и формати

В този пример ще използваме опцията InputBox за Специално вмъкване .

Стъпка 1:

  • Отидете в Разработчик таб.
  • Кликнете върху Записване на макрос .
  • Задайте Excel_Paste_Special_1 като Име на макрос .
  • След това натиснете OK .

Стъпка 2:

  • Сега щракнете върху Макроси команда.
  • Изберете Macro и след това натиснете Влезте в .

Стъпка 3:

  • Копирайте и поставете следния код в командния модул.
 Sub Excel_Paste_Special_1() Dim Copy_Cell As Range, Paste_Cell As Range xTitleId = "Salary_Sheet" Set Copy_Cell = Application.Selection Set Copy_Cell = Application.InputBox("Select Range to Copy :", xTitleId, Copy_Cell.Address, Type:=8) Set Paste_Cell = Application.InputBox("Paste to any blank cell:", xTitleId, Type:=8) Copy_Cell.Copy Paste_Cell.Parent.Activate Paste_Cell.PasteSpecialxlPasteValuesAndNumberFormats Paste_Cell.PasteSpecial xlPasteFormats Application.CutCopyMode = False End Sub 

Стъпка 4:

  • Натиснете F5 за да стартирате кода.
  • Ще се появи нов диалогов прозорец. Изберете обхвата на източника в този прозорец.
  • След това натиснете OK .

Стъпка 5:

  • Ще се появи друг диалогов прозорец. Изберете празен диапазон, в който да поставите копираните клетки.

Сега разгледайте набора от данни.

Всички данни се копират със стойности и формати, като се използва VBA Paste Special .

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

2. Вмъкване на диапазон от клетки със стойности и формати с помощта на xlPasteAllUsingSourceTheme във VBA Paste Special

Ще вмъкнем обхвата от клетки директно в VBA код в този раздел.

Стъпка 1:

  • Натиснете Alt+F11 за да влезете в командния модул.
  • Поставете следния код в командния модул.
 Sub Excel_Paste_Special_2() Range("B4:C9").Copy Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Стъпка 2:

  • Сега натиснете F5 за да стартирате кода.

Този xlPasteAllUsingSourceTheme копира точното копие на изходните данни.

Прочетете още: Excel VBA: Копиране на стойността на клетката и поставяне в друга клетка

3. Използване на променлива VBA за вмъкване на диапазон със стойности и формати чрез използване на специалната функция Paste

Ще покажем използването на променливи в VBA Paste Special код тук.

Стъпка 1:

  • Първо, въведете командния модул, като натиснете Alt+F11 .
  • Напишете кода по-долу в командния модул.
 Sub Excel_Paste_Special_3() Dim source_rng As Range, paste_rng As Range Set source_rng = Range("B4:C9") Set paste_rng = Range("E4") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Стъпка 2:

  • Натиснете F5 и стартирайте кода.

Прочетете още: Excel VBA: Копиране на обхват в друга работна книга

4. Използвайте xlPasteValues и xlPasteFormats, за да копирате стойности и формати в друг лист, като запазите форматите непроменени

Горните методи бяха използвани за копиране и поставяне на данни в един и същ лист. Сега ще покажем как да използваме VBA Paste Special за различни листове.

Стъпка 1:

  • Влезте в командния модул, като щракнете върху Alt+F11 и копирайте следния код върху него.
 Private Sub Excel_Paste_Special_4() Application.ScreenUpdating = False Dim source_rng As Worksheet Dim paste_rng As Worksheet Set source_rng = Worksheets("Data_Set") Set paste_rng = Worksheets("Different_Sheet") Set Destination = paste_rng.Range("B2") source_rng.Range("B2:C9").Copy Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormatsApplication.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Стъпка 2:

  • Натиснете F5 за да стартирате кода.

Виждаме, че данните от Data_Set се копира в Different_Sheet .

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

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

  • Как да копирате няколко клетки в друг лист в Excel (9 метода)
  • Разлика между Paste и Paste Special в Excel
  • Excel VBA за копиране на данни от друга работна книга без отваряне
  • Как да копирате и поставяте в Excel и да запазите размера на клетките (7 примера)
  • Копиране и поставяне на стойности на следващия празен ред с Excel VBA (3 примера)

5. Използвайте xlPasteFormats, за да поставите само форматите

В предишните методи копирахме целите данни и ги вмъкнахме без промяна. Но в този раздел ще копираме само формата на данните.

Стъпка 1:

  • Отидете в командния модул, като натиснете Alt+F11 .
  • Копирайте и поставете кода по-долу в командния модул.
 Sub Excel_Paste_Special_5() Range("B2:C9").Copy Range("E2").PasteSpecial xlPasteFormats End Sub 

Стъпка 2:

  • Сега натиснете бутона F5 и стартирайте кода.

Погледнете набора от данни. Копират се само форматите, тук няма стойности.

Прочетете още: Как да копирате и поставяте в Excel, без да променяте формата

6. Използвайте xlPasteValues, за да поставите само стойностите

Можем да копираме стойностите само с помощта на VBA Paste Special .

Стъпка 1:

  • Натиснете Alt+F11 за да влезете в командния модул.
  • Напишете следния код в командния модул.
 Sub Excel_Paste_Special_6() Range("B4:C9").Copy Range("E4").PasteSpecial xlPasteValues End Sub 

Стъпка 2:

  • Кликнете върху F5 и стартирайте кода.

Обърнете внимание на набора от данни. Тук се копират само стойности. При този метод не се копират формати.

Прочетете още: Как да използвате VBA, за да поставяте само стойности без форматиране в Excel

7. Копиране и поставяне на цялото съдържание на една клетка

В предишните раздели копирахме набор от данни. Тук ще копираме само една клетка.

Стъпка 1:

  • Сега натиснете Alt+F11 и въведете командния модул.
  • Въведете следния код в модула.
 Sub Excel_Paste_Special_7() Range("B4").Copy Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Стъпка 2:

  • Сега натиснете бутона F5 за да стартирате кода.

Виждаме, че тук се копира една клетка, а не диапазон.

Прочетете още: Формула за копиране и поставяне на стойности в Excel (5 примера)

8. Копиране и поставяне на всички атрибути на определена колона с VBA

Подобно на единична клетка, можем да копираме единична колона в набора от данни.

Стъпка 1:

  • Просто натиснете Alt+F11 за да влезете в командния модул.
  • Напишете кода по-долу в модула.
 Sub Excel_Paste_Special_8() Dim source_rng As Range, paste_rng As Range Set source_rng = Columns("C") Set paste_rng = Columns("E") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Стъпка 2:

  • Изпълнете кода, като натиснете F5 .

Тук можем да видим, че Колона B се копира в Колона Е .

Прочетете още: [Поправено]: Копирането и поставянето с десен бутон на мишката не работи в Excel (11 решения)

9. Копиране и поставяне на всички атрибути на ред с Excel VBA

По същия начин можем да копираме един ред с помощта на Специално поставяне .

Стъпка 1:

  • Кликнете върху Alt+F11 за да влезете в командния модул.
  • Копирайте следния код в командния модул.
 Sub Excel_Paste_Special_9() Dim source_rng As Range, paste_rng As Range Set source_rng = Rows("4") Set paste_rng = Rows("11") source_rng.Copy paste_rng.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Стъпка 2:

  • Изпълнете кода, като натиснете F5 .

Тук, Ред 4 се копира в Ред 11 .

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

Заключение

В тази статия сме обяснили 9 методи на VBA Paste Специални стойности и формати в Excel. Надявам се, че това ще задоволи нуждите ви. Моля, разгледайте нашия уебсайт Exceldemy.com и дайте своите предложения в полето за коментари.

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