본문 바로가기

엑셀로 풀어가는 세상

엑셀 VBA #05 / 셀 하나 선택하기_4 [VBA]-Offset

엑셀 VBA #05 / 셀 하나 선택하기_4 [VBA]

1. 목적

OffSet속성 활용하여 셀 하나 선택하기
- 구조 : 기준셀. Offset(행,열)
- 의미 : 기준셀에서부터 주어진 행렬 만큼 이동하기

2. 사용례
- Range("A1").Offset(1,1).Select

   A1셀을 기준으로 1행 1열 만큼 이동하기


- Range("B5").Offset(0,2).Select 또는
   Range("B5").Offset(,2).Select    '0은 생략가능함


- Range("B5").Offset(2,0).Select 또는
   Range("B5").Offset(2).Select    ',0은 생략가능함

3. 응용

특정열(ex,C열)의 마지막 데이타값 있는 셀의 아래 셀 선택하기
1단계 : 마지막 테이타값 있는 셀 찾기
=> Cells(Rows.Count,"C").end(xlup)
2단계 : 그 셀의 아래 셀
=> Offset(1,0) 혹은 Offset(1)


- Cells(Rows.Count,"C").end(xlup).Offset(1,0).select 또는
    Cells(Rows.Count,"C").end(3).Offset(1).select 또는

    Cells(Rows.Count,"C").end(3)(2).select

 

4. 코딩연습

 

'코딩 방법1

Sub offset연습2()

Dim c As Range

For Each c In Range("C1:C10")
      If c >= 116 Then
            Cells(Rows.Count, "f").End(3)(2) = c
      End If
Next
End Sub

위 코드에서 Range("C1:C10")을 변수로 설정하여 다음과 같이 코딩할 수 있다.

Sub offset연습231229()

Dim rngD As Range
Dim c As Range

Set rngD = Range("c1", Cells(Rows.Count, "c").End(xlUp))

For Each c In rngD
      If c >= 116 Then
            Cells(Rows.Count, "f").End(3)(2) = c
      End If
Next

End Sub

 

결과값

5. 핵심정리

데이터를 누적해서 쌓을 때
Cells(Rows.Count,"a").End(Xlup).Offset(1)
= Cells(Rows.Count,"a").End(3)Offset(2)

vba#05.xlsm
0.02MB

 

 

 

엑셀 VBA #07 / 셀 범위 선택하기_2 [VBA] -Resize & Offset


https://www.youtube.com/watch?v=vWWwHWvrzTE&list=PLfxvqpVCYZ8e0qlyc_FU46neoWjO7yTWj&index=5

 

 

반응형