rand(life)

[VBA] 한 줄 건너 하나씩 셀 선택하기 본문

컴퓨터/엑셀

[VBA] 한 줄 건너 하나씩 셀 선택하기

flogsta 2017. 3. 16. 08:51

엑셀에서 A1,A3,A5,A7 . . . 이런식으로A9999까지 선택하고 싶은데요
일일이 선택하지 않고 한꺼번에 선택하는 방법은 없나요?

참고사이트: http://www.iexceller.com/MyXls/VBA_Beginner/VBA_Beginner8.asp


역시 지식인에서 나온 질문이다. 


시트를 여러장 선택하는 코드는 지난번 답변한 적이 있기 때문에, 그때 코드를 뒤져봤다

 Worksheets(i).Select (False)         '시트를 앞시트에 더하여 선택


바로 이 부분이다. 

셀 선택하는 것도 이렇게 가능할 거라 생각해서,

cells(i, 1).select (false)

이렇게 짰다. 

그런데 오류가 난다. 

인수의 개수나 속성 지정이 잘못 되었습니다

찾아보니, 셀을 여러개 선택하는 방법은 VBA함수인 Union을 이용하는 것이었다.

완성된 수식은 다음과 같다.

Sub ss()
Dim i As Long                         
'한 시트에 행의 수가 1백만개 쯤 되기 때문에, 6만 정도의 숫자면 표현할 수 있는 integer로 정의하면,  오류가 날 수 있다. 물론 지금처럼 숫자가 작을 때는 상관없다
Dim rng As Range

Set rng = Cells(1, 1)                        'rng에 처음 선택하는 셀주소 즉 A1셀을 부여
For i = 1 To 10000 Step 2                  '1부터 2씩 증가한다. 1,3,5,7,9,....
Set rng = Union(rng, Cells(i, 1))           '이전 rng의 셀에 다음 홀수행의 셀을 합친다
Next i
rng.Select                                        '최종적으로 rng에 모두 모인 셀을 선택
   
End Sub

이 재미있는 VBA를 왜 진작 공부하지 않았던가!