Съдържание
Когато трябва да копираме и поставим някакви данни в 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 и дайте своите предложения в полето за коментари.