이번 시간에는 Copy/Paste Range activity에 대해서 알아보자.
Copy/Paste Range란 소스 데이터를 복사하여 대상 엑셀에 소스 데이터를 붙여넣는 기능을 지원하는 activity다.
기본적으로(소스 -> 대상)
1. 시트 -> 시트
2. 범위 -> 시트
3. 범위 -> 범위
4. 범위 -> 셀
5. 셀 -> 셀
6. 셀 -> 범위
을 지원한다.
Excel.Sheet("시트명")
Excel.Sheet("시트명").Range("범위")
Excel.Sheet("시트명")
Excel.Sheet("시트명").Range("범위")
연습용.xlsx sheet1에 다음과 같은 데이터가 있다고 가정하자.
해당 데이터 Copy/Paste Range를 통해 연습용.xlsx에 sheet2에 붙여넣어보자.
실행 결과 sheet2에도 같은 데이터가 복사되었음을 확인 할 수 있다.
여담
바꾸기 체크박스의 경우 행과 열을 반대로 넣어주는 기능이다.
예를들어
11 12 13
21 22 23
이라는 데이터가 있을 때, 바꾸기를 체크하고 실행하면
11 21
12 22
13 23
으로 바뀐다.
여담2
위에서 언급한 3. 범위 -> 범위의 경우 서로 다른 크기의 범위일 경우 어떻게 될까?
큰 범위에서 작은 범위를 지정할 경우는 쉽게 추측이 되지만 작은 범위에서 큰 범위로 가능 경우는 추측이 쉽게 되지 않는다. 필자 또한, 궁금하여 실제 수행을 해보았다.
예를들어 소스범위가 A2:B3이고 대상범위가 B3:E6이라고 가정해보자.
(소스 데이터는 2.연습에서 쓰인 데이터와 동일하다고 가정)
결과로는 다음과 같이 나온다.
그럼 B3:E5는 어떻게 나올까?
위에 결과가 차이가 나는 이유는 다음과 같다.
만약 소스범위 데이터가 2 x 2 형식일 경우, 대상 범위를 2n x 2n로 설정할 경우, 복사해서 채우지만 아닌 경우에는 복사한 데이터만 채우게 된다.
위와 같은 상황도 전자는 소스 데이터는 2 x 2 대상 범위는 4 x 4 이기에 복사해서 채웠지만
후자는 3 x 4이기에 2 x 2 데이터만 붙여넣은 것이다.
여담3
공식 문서에서는
4. 범위 -> 셀
5. 셀 -> 셀
6. 셀 -> 범위
도 지원한다고 하였는데 소스와 대상에 셀을 어떻게 지정하는지 궁금증이 생긴다.Excel.Sheet("시트명").Cell("셀")
로 코드를 집어넣으면 uipath에서는 오류가 나온다. 이것에 대해 잘아시는 분은 댓글을 남겨주시면 감사하겠습니다.