본문 바로가기
생활 IT 정보 & 엑셀/엑셀

엑셀 VBA) 셀 값 선택하여 가져오기(Cells, Range) 간단 사용법

by 꿀떡스 2020. 3. 19.
반응형

 

 

엑셀 VBA에서는 빠지지 않고 사용되는 것이 

바로 이 Cells, Range 함수입니다.

 

 

 

Cells, Range 함수의 차이는

Cells하나의 셀만 선택,

Range하나의 셀 혹은 여러 범위를 선택할 수 있다는 것입니다!

 

 

물론 엑셀에는 Cells, Range 외에도 여러가지 선택 함수들이 있지만,

이 포스팅에서는 이 두 가지만 소개할게요.

 

 

 

1. Cells 사용법

 

1) 기본적인 사용법

 

Cells(행, 열) 입니다.

 

위에서도 말씀드렸듯이 범위가 아닌 하나의 셀을 택해요.

 

대신 어떤 범위 안에서 어떤 셀을 택한다 - 라는 구문으로 많이 사용되어

 

Worksheets("~").Cells(n, n)

Range("~").Cells(n, n)

 

등으로 자주 사용됩니다.

 

예시로 보실게요.

 

 

 

3A,4A,5A 에 있는 내용을 

3B,4B,5B 로 옮기는 매크로를 만들어보겠습니다.

 

 

Worksheets("Sheet1").Cells(3, 2).Value = Worksheets("Sheet1").Cells(3, 1).Value

Cells(4, 2).Value = Cells(4, 1).Value

Cells(5, 2) = Cells(5, 1)

Cells(n, n) 은 같지만,

앞 뒤로 Worksheets(), Value가 붙었는지의 차이입니다.

 

이 매크로를 실행하면,

 

 

 

이렇게 3가지 구문이 모두 실행이 되는 것을 볼 수 있습니다.

 

 

! 여기서 알 수 있는 점 두 가지 !

 

Worksheets().는 시트가 여러 개 있는 문서일 경우,

복잡한 기능을 수행할 때 

혼선을 방지해서 사용합니다.

기본적으로 현재 활성화된 시트를 기준으로 실행하므로,

한 시트만 있는 문서 내에서는 굳이 안 써줘도 됩니다.

 

Cells 의 값을 가져와서 넣을 때는 .Value를 사용해도 되고 안 사용해도 됩니다.

하지만 Range에서는 다릅니다. 

Range 부분 설명을 참고 바랍니다!

 

 

 

 

2) 두 번째 사용법 - Cells( 숫자, "알파벳")

 

 

 

Cells(3, 1) 대신 Cells(3, "A")

 

이것은 A3 셀을 말하는 것과 같습니다!

 

결과는 같게 나옵니다.

 

 

3) 세 번째 사용법 - Cells(숫자)

 

Cells(3, 1) 대신 Cells(1), Cells(2) .... 

 

이건 무엇일까요?

 

 

예시입니다.

 

 

 

이렇게 있을 때,

 

 

Cells(1).ClearContents

 

내용을 지우는 ClearContents 속성을 사용하면 

 

A,B,C,D 중 무엇이 지워질까요?

 

 

 

정답은,

 

 

 

예측 가능하듯이 가장 첫번째 셀인 A1이 지워집니다.

 

 

그렇다면,

 

Cells(2).ClearContents 를 한다면?

 

A의 오른쪽이 지워질까요, 아래가 지워질까요?

 

 

 

 

 

정답은 오른쪽이네요.

 

 

 

이렇게 인자를 숫자로 하나만 썼을 경우,

 

행은 1로 고정되고,

 

인자값이 열 번호로 지정되어 지워지는 것을 알 수 있습니다.

 

 

 

 

 

2. Range 사용법 총 정리

 

Range 사용법은 간단하게 예시를 모아서 보여드릴게요!

 

Range("A1") A1 선택


Range("A1 : A3") A1 부터 A7 까지 전체 선택

Range("A1", "A3")  A1 부터 A7 까지 전체 선택

Range("A1, A3")  A1, A3 따로 선택

Range("A1:A3", "C1") A1부터 C3까지 전체 선택

Range("A1:A3, C1") A1:A3, C1이 따로 선택

 

 

알아두셔야 할 점!

 

Range 는 값을 가져올 때는 Cells 와 달리 Value 값을 써야 가져와집니다.

 

Range("A3") = Range("B3").Value 

 

이런 식으로 사용 가능하다는 이야기입니다. 

 

 

 

 

 

 

오늘 포스팅은 여기까지입니다.

 

 

도움이 되셨길 바래요~~~

 

 

댓글