VBA 값 붙여넣기 및 선택하여 붙여넣기

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 3월 8, 2023

이 튜토리얼에서는 VBA에서 붙여넣기 옵션을 사용하여 특정 셀 속성(예: 값, 서식)만 붙여넣는 방법을 보여줍니다.

 

Excel에서 셀을 복사하여 붙여넣을 때 값, 서식, 수식, 숫자 서식, 테두리 등 셀의 모든 속성을 복사하여 붙여넣습니다:

vba copy paste special

반면에 ‘선택하여 붙여넣기을 사용하면 특정 셀 속성만 붙여넣을 수 있습니다. Excel에서 특수 붙여넣기 메뉴는 (셀을 복사한 후) 단축키 CTRL + ALT + V를 사용하여 액세스할 수 있습니다:

여기에서 붙여넣을 수 있는 모든 셀 속성 조합을 볼 수 있습니다.

선택하여 붙여넣기 메뉴를 사용할때 매크로 기록 기능을 사용하면 생성된 코드를 간단히 사용할 수 있습니다. 이는 VBA에서 선택하여 붙여넣기 기능을 사용하는 가장 쉬운 방법입니다.

값 붙여넣기

값 붙여넣기는 셀 “값”만 붙여넣습니다. 셀에 수식이 포함된 경우 값 붙여넣기는 수식 결과를 붙여넣습니다.

이 코드는 동일한 워크시트에서 단일 셀에 대한 값을 복사하여 붙여넣습니다:

Range("A1").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues

복사하여 다른 시트에 값 붙여넣기

이 예에서는 다른 워크시트의 단일 셀에 대한 값을 복사하여 붙여넣습니다.

Sheets("Sheet1").Range("A1").Copy
Sheets("Sheet2").Range("B1").PasteSpecial Paste:=xlPasteValues

이 예제는 셀 범위에 대한 값 복사 및 붙여넣기입니다:

범위 복사 및 값 붙여넣기

Range("A1:B3").Copy
Range("C1").PasteSpecial Paste:=xlPasteValues

열 복사 및 값 붙여넣기

Columns("A").Copy
Columns("B").PasteSpecial Paste:=xlPasteValues

행 복사 및 값 붙여넣기

Rows(1).Copy
Rows(2).PasteSpecial Paste:=xlPasteValues

값 및 숫자 서식 붙여넣기

값 붙여넣기는 셀 값만 붙여넣습니다. 숫자 서식을 포함한 서식은 붙여넣지 않습니다.

값을 붙여넣을 때 숫자 서식을 포함해야 값의 서식이 유지되는 경우가 종종 있습니다. 예를 살펴보겠습니다.

여기서는 백분율이 포함된 셀을 값으로 붙여넣겠습니다:

Sheets("Sheet1").Columns("D").Copy
Sheets("Sheet2").Columns("B").PasteSpecial Paste:=xlPasteValues

백분율 숫자 서식이 손실되고 대신 소수점을 포함한 값이 표시되는 것을 알 수 있습니다.

이번에는 값 및 숫자 서식 붙여넣기를 사용해보겠습니다:

Sheets("Sheet1").Columns("D").Copy
Sheets("Sheet2").Columns("B").PasteSpecial Paste:=xlPasteValuesAndNumberFormats

 

이번에는 숫자 서식도 붙여넣기되어 백분율 서식이 유지되는 것을 볼 수 있습니다.

.Paste를 대신하는 .Value 명령어

값을 붙여넣는 대신 범위 개체의 값 속성을 사용할 수 있습니다:

이렇게 하면 A2의 셀 값이 B2의 셀 값과 동일하게 설정됩니다.

Range("A2").Value = Range("B2").Value

셀의 범위를 단일 셀의 값과 동일하게 설정할 수도 있습니다:

Range("A2:C5").Value = Range("A1").Value

또는 동일한 사이즈의 셀 범위가 같은 값을 가지도록 설정할 수도 있습니다:

Range("B2:D4").Value = Range("A1:C3").Value

Value 속성을 사용하면 코드 라인을 줄일 수 있습니다. 또한 Excel VBA에 능숙해지고 싶다면 셀의 Value 속성과 관련된 작업에 익숙해져야 합니다.

셀 Value 속성과 Value2 속성 비교

기술적으로는 셀의 Value2 속성을 사용하는 것이 더 좋습니다. Value2가 약간 더 빠르며(이는 매우 복잡한 계산에서만 중요함), Value 속성을 사용하면 셀의 형식이 통화 또는 날짜로 지정되어 불완전한 결과를 얻을 수 있습니다. 하지만 제가 본 코드의 99% 이상은 .Value2가 아닌 .Value를 사용합니다. 저는 개인적으로 .Value2를 사용하지 않지만, 그 존재를 알고 있어야 합니다.

Range("A2").Value2 = Range("B2").Value2

복사 붙여넣기 빌더

셀을 복사(또는 잘라내기)하고 붙여넣을 수 있는 VBA 코드를 쉽게 생성할 수 있는 ‘복사 붙여넣기 코드 빌더’를 만들었습니다. 이 빌더는 VBA Add-in의 일부입니다: AutoMacro에 포함되어 있습니다.

vba copy paste helper

AutoMacro 에는 다른 많은 코드 생성기, 광범위한 코드 라이브러리, 강력한 코딩 도구도 포함되어 있습니다.

선택하여 붙여넣기 – 서식 및 수식

값 붙여넣기 외에 가장 일반적인 선택하여 붙여넣기 옵션은 서식 붙여넣기와 수식 붙여넣기입니다.

서식 붙여넣기

서식 붙여넣기를 사용하면 모든 셀 서식을 붙여넣을 수 있습니다.

Range("A1:A10").Copy
Range("B1:B10").PasteSpecial Paste:=xlPasteFormats

수식 붙여넣기

수식 붙여넣기는 셀 수식만 붙여넣습니다. 셀 수식을 복사하고 싶지만 셀 배경색(또는 다른 셀 서식)은 복사하지 않으려는 경우에 매우 유용합니다.

Range("A1:A10").Copy
Range("B1:B10").PasteSpecial Paste:=xlPasteFormulas

수식 및 숫자 서식 붙여넣기

위의 값 및 숫자 서식 붙여넣기와 유사하게 수식과 함께 숫자 서식도 복사하여 붙여넣을 수 있습니다.

vba paste special formulas

아래에서는 회계 서식의 수식을 복사하여 수식 붙여넣기를 사용하겠습니다.

Sheets("Sheet1").Range("D3").Copy
Sheets("Sheet2").Range("D3").PasteSpecial xlPasteFormulas

vba paste special formulas formats

숫자 서식이 손실되고 대신 반올림되지 않은 값이 표시되는 것을 알 수 있습니다.

이번에는 수식 및 숫자 서식 붙여넣기를 사용하겠습니다:

Sheets("Sheet1").Range("D3").Copy
Sheets("Sheet2").Range("D3").PasteSpecial xlPasteFormulasAndNumberFormats

vba paste special formulas numberformatting

이제 숫자 서식도 붙여넣기되어 회계 서식이 유지되는 것을 볼 수 있습니다.

선택하여 붙여넣기 – 행/열 바꿈 및 내용 있는 셀만 붙여넣기

선택하여 붙여넣기 – 행/열 바꿈

선택하여 붙여넣기 -행/열 바꿈을 사용하면 셀의 방향을 위에서 아래로 또는 왼쪽에서 오른쪽으로(또는 그 반대로) 변경하여 복사하여 붙여넣을 수 있습니다:

 

Sheets("Sheet1").Range("A1:A5").Copy
Sheets("Sheet1").Range("B1").PasteSpecial Transpose:=True

vba paste special transpose

vba transpose

선택하여 붙여넣기 – 내용 있는 셀만 붙여넣기

내용있는 셀만 붙여넣기는 자주 사용되지는 않는 것 같은 선택하여 붙여넣기 옵션입니다. 이 옵션을 사용하면 복사하여 붙여넣을 때 빈 셀이 아닌 셀만 복사할 수 있습니다. 따라서 빈 셀은 복사되지 않습니다.

아래 예제에서는 A 열을 복사하고 B 열에 일반적인 붙여넣기를 수행한 후 C 열에 내용 있는 셀만 붙여넣기를 실행하겠습니다. 아래 이미지에서 빈 셀이 C 열에 붙여넣지 않은 것을 볼 수 있습니다.

Sheets("Sheet1").Range("A1:A5").Copy
Sheets("Sheet1").Range("B1").PasteSpecial SkipBlanks:=False
Sheets("Sheet1").Range("C1").PasteSpecial SkipBlanks:=True

vba value paste skip blanks

vba skip blanks

기타 선택하여 붙여넣기 옵션

선택하여 붙여넣기- 주석 및 메모

Sheets("Sheet1").Range("A1").Copy Sheets("Sheet1").Range("E1").PasteSpecial xlPasteComments

vba paste special comments

vba paste comments

선택하여 붙여넣기- 유효성 검사

vba paste special validation

Sheets("Sheet1").Range("A1:A4").Copy
Sheets("Sheet1").Range("B1:B4").PasteSpecial xlPasteValidation

vba paste validation

선택하여 붙여넣기 – 모두

vba paste special allusingsourcetheme

Workbooks(1).Sheets("Sheet1").Range("A1:A2").Copy
Workbooks(2).Sheets("Sheet1").Range("A1").PasteSpecial
Workbooks(2).Sheets("Sheet1").Range("B1").PasteSpecial xlPasteAllUsingSourceTheme

선택하여 붙여넣기 – 테두리 없음

Range("B2:C3").Copy
Range("E2").PasteSpecial
Range("H2").PasteSpecial xlPasteAllExceptBorders

vba paste special allexceptborders

선택하여 붙여넣기 – 열 너비

A personal favorite of mine. PasteSpecial Column Widths will copy and paste the width of columns.

Range("A1:A2").Copy
Range("C1").PasteSpecial
Range("E1").PasteSpecial xlPasteColumnWidths

vba paste special column widths

선택하여 붙여넣기 – 조건부 서식 모두 병합

vba paste special all merging conditional formats

Range("A1:A4").Copy
Range("C1").PasteSpecial
Range("E1").PasteSpecial xlPasteAllMergingConditionalFormats

vba paste special formats

 

 

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기

AI in the VBA Editor!

AutoMacro is the ultimate VBA add-in.

AI, Generators, UI Builders, Code Library, and More!

Learn More

AutoMacro: AI in the VBA Editor!

Learn More