지정된 범위에서 오프셋된 범위를 나타내는 Range 개체를 반환합니다 .
1. 오프셋된 범위의 주소 출력하기
Sub OffsetExample()
' 기준 셀 설정 (A1)
Dim rng As Range
Set rng = Range("A1")
' A1 기준으로 아래로 2칸 이동한 셀 참조 (A3)
Dim offsetRange1 As Range
Set offsetRange1 = rng.Offset(2, 0)
' A1 기준으로 오른쪽으로 3칸 이동한 셀 참조 (D1)
Dim offsetRange2 As Range
Set offsetRange2 = rng.Offset(0, 3)
' A1 기준으로 아래로 3칸, 오른쪽으로 4칸 이동한 셀 참조 (E4)
Dim offsetRange3 As Range
Set offsetRange3 = rng.Offset(3, 4)
' 각각의 오프셋 셀 주소를 출력합니다.
Debug.Print "Offset Range 1: " & offsetRange1.Address ' "Offset Range 1: $A$3" 출력
Debug.Print "Offset Range 2: " & offsetRange2.Address ' "Offset Range 2: $D$1" 출력
Debug.Print "Offset Range 3: " & offsetRange3.Address ' "Offset Range 3: $E$4" 출력
End Sub
offset속성은 OFFSET함수를 알고 있으면 이해가 쉽습니다.
OFFSET함수 구문은 다음과 같습니다.
OFFSET(reference, rows, cols, [height], [width])
rows는 Offset속성의 RowOffset에 해당합니다.
cols는 Offset속성의 ColumnOffset에 해당합니다.
2. 오프셋된 범위 선택하기
Sub ChangeCellSelection()
Range("A1").Offset(1, 3).Select
Debug.Print "선택된 셀 주소: " & ActiveCell.Address
Debug.Print
Range("B5").Offset(2, 2).Select
Debug.Print "선택된 셀 주소: " & ActiveCell.Address
Debug.Print
Range("C2").Offset(1, -2).Select
Debug.Print "선택된 셀 주소: " & ActiveCell.Address
Debug.Print
Range("D3").Offset(-2, -1).Select
Debug.Print "선택된 셀 주소: " & ActiveCell.Address
End Sub
3. 복사하기
Sub CopyWithOffset()
Dim sourceRange As Range
Dim targetRange As Range
' 원본 범위 정의
Set sourceRange = Range("A1:A5")
' 대상 범위를 원본 범위에서 3행 아래로, 2열 오른쪽으로 설정
Set targetRange = sourceRange.Offset(3, 2)
' 원본 범위를 대상 범위로 복사
sourceRange.Copy targetRange
End Sub
'Range object' 카테고리의 다른 글
[Range개체] Font속성 (0) | 2023.07.01 |
---|---|
[Range개체] Resize 속성 (0) | 2023.06.29 |
셀 복사,잘라내기,붙여넣기 (0) | 2023.06.28 |
셀에 수식 입력하기 (0) | 2023.06.25 |
셀에 값 입력하기 (0) | 2023.06.25 |