Range 개체

Paste 메서드

노만e 2025. 3. 11. 05:54

 

엑셀 VBA에서 Paste 메서드는 복사한 내용을 특정 위치에 붙여넣을 때 사용됩니다.

보통 Copy 메서드와 함께 사용되며, 전체 내용 또는 특정 요소(값, 서식 등)만 붙여넣을 수 있습니다.


 

1. 기본 문법

Range("붙여넣을 위치").PasteSpecial Paste:=붙여넣을 유형
  • PasteSpecial을 사용하면 특정 요소(값, 서식 등)만 붙여넣기 가능
  • Paste는 기본적으로 전체 내용(값 + 서식 + 수식) 붙여넣기
  • 복사 후 Application.CutCopyMode = False를 추가하면 복사 모드 해제

2. 전체 복사 및 붙여넣기

📌 A1:A5를 복사하여 B1에 붙여넣기

Sub 전체_복사_붙여넣기()
Range("A1:A5").Copy
Range("B1").PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False ' 복사 모드 해제
End Sub

📌 A1:A5의 전체 내용을 B1부터 붙여넣기 (값, 서식, 수식 포함)

📌 Application.CutCopyMode = False → 복사 모드 해제


3. 특정 요소만 붙여넣기 (PasteSpecial)

붙여넣기 유형
설명
xlPasteAll
모든 요소(값 + 서식 + 수식) 붙여넣기
xlPasteValues
값만 붙여넣기 (수식 제거)
xlPasteFormulas
수식만 붙여넣기 (서식 유지)
xlPasteFormats
서식만 붙여넣기
xlPasteComments
메모(댓글)만 붙여넣기
xlPasteValidation
데이터 유효성 검사 규칙만 붙여넣기
xlPasteColumnWidths
열 너비만 붙여넣기
xlPasteSpecialOperations
연산 적용 붙여넣기 (예: 더하기, 빼기 등)


📌 값만 붙여넣기 (xlPasteValues)

Sub 값만_붙여넣기()
Range("A1:A5").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub

 

📌 A1:A5의 값을 B1부터 붙여넣기 (서식 및 수식 제거됨)


📌 수식만 붙여넣기 (xlPasteFormulas)

Sub 수식만_붙여넣기()
Range("A1:A5").Copy
Range("B1").PasteSpecial Paste:=xlPasteFormulas
Application.CutCopyMode = False
End Sub

📌 A1:A5의 수식만 B1부터 붙여넣기 (서식은 유지)


📌 서식만 붙여넣기 (xlPasteFormats)

Sub 서식만_붙여넣기()
Range("A1:A5").Copy
Range("B1").PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End Sub

📌 A1:A5의 서식만 B1부터 붙여넣기 (값과 수식은 변경되지 않음)


📌 열 너비만 붙여넣기 (xlPasteColumnWidths)

Sub 열너비_붙여넣기()
Columns("A").Copy
Columns("B").PasteSpecial Paste:=xlPasteColumnWidths
Application.CutCopyMode = False
End Sub

📌 A열의 열 너비를 B열에 적용 (내용은 변경되지 않음)


📌 메모(댓글)만 붙여넣기 (xlPasteComments)

Sub 메모만_붙여넣기()
Range("A1").Copy
Range("B1").PasteSpecial Paste:=xlPasteComments
Application.CutCopyMode = False
End Sub

📌 A1의 메모(댓글)만 B1에 붙여넣기


4. 연산 적용하여 붙여넣기

연산 유형
설명
xlPasteSpecialOperationAdd
기존 값에 더하기
xlPasteSpecialOperationSubtract
기존 값에서 빼기
xlPasteSpecialOperationMultiply
기존 값에 곱하기
xlPasteSpecialOperationDivide
기존 값에 나누기

📌 기존 값에 더하기 (xlPasteSpecialOperationAdd)

Sub 더하기_붙여넣기()
Range("A1:A5").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationAdd
Application.CutCopyMode = False
End Sub

📌 A1:A5 값을 B1:B5에 더하기 (B1:B5가 기존 값이 있는 상태에서 계산됨)


📌 기존 값에서 빼기 (xlPasteSpecialOperationSubtract)

Sub 빼기_붙여넣기()
Range("A1:A5").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationSubtract
Application.CutCopyMode = False
End Sub

📌 A1:A5 값을 B1:B5에서 빼기


📌 기존 값에 곱하기 (xlPasteSpecialOperationMultiply)

Sub 곱하기_붙여넣기()
Range("A1:A5").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationMultiply
Application.CutCopyMode = False
End Sub

📌 A1:A5 값을 B1:B5에 곱하기


📌 기존 값에 나누기 (xlPasteSpecialOperationDivide)

Sub 나누기_붙여넣기()
Range("A1:A5").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationDivide
Application.CutCopyMode = False
End Sub

📌 A1:A5 값을 B1:B5에서 나누기


5. 붙여넣기 없이 직접 복사 (값 입력)

Sub 직접_값_복사()
Range("B1:B5").Value = Range("A1:A5").Value
End Sub

📌 A1:A5 값을 B1:B5로 직접 복사 (서식 및 수식 제외, 값만 복사됨)


📝 정리

기능
VBA 코드
전체 붙여넣기
Range("B1").PasteSpecial Paste:=xlPasteAll
값만 붙여넣기
Range("B1").PasteSpecial Paste:=xlPasteValues
수식만 붙여넣기
Range("B1").PasteSpecial Paste:=xlPasteFormulas
서식만 붙여넣기
Range("B1").PasteSpecial Paste:=xlPasteFormats
열 너비만 붙여넣기
Columns("B").PasteSpecial Paste:=xlPasteColumnWidths
메모(댓글)만 붙여넣기
Range("B1").PasteSpecial Paste:=xlPasteComments
기존 값에 더하기
Operation:=xlPasteSpecialOperationAdd
기존 값에서 빼기
Operation:=xlPasteSpecialOperationSubtract
기존 값에 곱하기
Operation:=xlPasteSpecialOperationMultiply
기존 값에 나누기
Operation:=xlPasteSpecialOperationDivide
직접 값 복사
Range("B1:B5").Value = Range("A1:A5").Value

🔥 VBA의 Paste와 PasteSpecial을 활용하면 데이터를 유연하게 붙여넣을 수 있습니다! 🚀