vba에세 셀이나 범위를 지정할 때 쓰는 게 range와 cells 이다.
이 두가지는 같으면서도 다른 특징이 있다.
먼저 range를 살펴보자.
range는 셀이나 범위를 지정할때 문자열 또는 range타입으로 지정될 수 있다.
이게 무슨 말이냐면 range("a1")을 보면 a1셀을 선택하기위해 "a1"문자열 형태로도 입력되고 range(cells(1,1))으로도 가능하다.
그에 반해 cells는 숫자타입으로 셀이나 범위를 지정한다. 예를들어 cells(1,1)은 range("a1")과 같이 a1셀을 선택한다.
range와 cells는 이러한 차이점때문에 확실히 다른 용도에서 사용된다.
range는 range를 인수로 하는 특성때문에 범위를 지정할때 자주 쓴다.
with sheets(1)
rngAll = range(.cells(1,1), .cells(10,1).end(3))
end with
위 예제를 보면 rngAll이라는 range형변수에 a1부터 a10까지의 범위를 지정한다. range는 둘이상이 셀을 지정하는데 자주 이용된다.
for i = 1 to 10
cells(i,1) = cells(i+1,1)
next i
그에 반해 cells는 개개의 셀을 참조할때 이용된다. 그리고 위 예제를 보면 알 수 있듯이 cells는 숫자를 인수로 받기 때문에 순환문에 자주 쓰인다. 즉 개개의 셀에 접근하거나 for문이나 while문 등의 순환문을 통해서 셀을 참조하여 데이터를 가공하는 등의 작업을 할 수 있다.vba
VBA