티스토리 뷰


이 글에서는 엑셀매크로를 이용하여 셀의 데이터 및 속성을 복사하는 방법에 대해서 알아볼까 합니다


셀을 복사하는 함수는 Range 객체의 Copy 함수입니다. Copy 함수는 Destination이라는 파라미터를 가지고 있습니다. 

Copy 함수는 값만 복사하는 것이 아닙니다. 셀의 속성을 모두 복사를 합니다. 


이에 대한 내용을 MSDN을 통해서 한번 살펴보도록 하겠습니다. 



Destination이라는 파라미터를 통해서 복사할 위치를 지정을 할 수 있습니다.


Destination의 설명을 살펴보면, Destination은 복사될 위치를 지정되는 곳으로 볼 수 있습니다. Destination의 값이 누락되면(Omitted) 이 값은 클립보드에 복가 된다는 것을 위의 설명을 통해서 확인을 할 수 있습니다.


위의 자료를 통해서 우리는 Copy 함수를 쓰기위해서는 Destination 지정이 중요하구나 라는 걸 알 수 있습니다.

그러므로 Destination 지정 방법에 대해서 알아보도록 할께요.


Destination은 Copy 함수의 파라미터입니다.


하지만 기존의 파라미터와는 달리 사용이 됩니다.

Destination을 Range로 대체가 되는 것이 아니라 아래와 같이 사용을 해야 합니다.


Range("A1:A10").Copy Destination:=Range("C1")


파라미터 := 값

이라는 형태로 지정이 되어야 하는 것이죠. 


이는 Range 개체의 Copy 함수를 사용할 것인데, Copy되는 목적지가 "Destination := Range("위치")"와 같은 형식으로 지정이 되어 Range에 정의된 위치에 복사가 되게끔 해줍니다.


예제를 통해서 한번 살펴보도록 하겠습니다.


Sub copyDataUsingRange()


    ' 에러 발생

    ' Range("A1:A10").Copy (Range("H1"))


    '제대로 설정된 Destination

    Range("A1:A10").Copy Destination:=Range("C1")


End Sub



에러발생이라는 주석이 나와있는 코드를 중점적으로 봐야합니다. 일반적인 함수의 호출은 매개변수를 전달하게 되는데, Copy 함수에 Range 개체를 매개변수로 전달을 하면 에러가 발생합니다. 


즉, Destination을 위의 방식으로 지정을 해야 제대로 복사가 되는 것을 확인할 수 있는 것이죠. 

궁금하신 분들은  ' Range("A1:A10").Copy (Range("H1")) 코드에서 가장 앞부분의 '를 빼면 주석처리가 된것이 해제가 되기 때문에 에러를 볼 수 있을 겁니다. 



위의 코드를 실행하게 되면 A1부터 A10의 셀을 복사하여 C1에 붙여 넣습니다. 셀배경과 같이 셀의 속성도 모두 복사가 되는 것을 확인할 수 있습니다. 



이 글에서는 셀 복사 방법에 대해서 알아보았습니다. 


이 글이 도움이 되셨으면, 아래의 하트를 눌러주세요.

댓글