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 코드 예시로 돌아가기