my함수 DynamicRange

2024. 12. 5. 20:52

지정된 워크시트에서 특정 열(i)과 초기 행(InitRow)을 기반으로 동적 범위(Address)를 반환하는 함수

Function DynamicRange(WS As Worksheet, Column As String, InitRow As Long) As Range

Dim i As Long
Dim Address As String

i = WS.Range(Column & "1048576").End(xlUp).Row
If i < InitRow Then i = InitRow *초기값보다 i가 크더라도 초기값을 포함하기 위함
Address = Column & InitRow & ":" & Column & i 'a2:a13

Set DynamicRange = WS.Range(Address)


End Function

i는 워크시트의 Column행 마지막 셀에서 Ctrl+up한 셀의 행번호
i가 행의 초기값보다 작다면 i는 행의 초기값(InitRow)이다
Address는 Coulumn_InitRow : Column_i 라는 동적 범위

 

Sub TestDynamicRange()
    Dim myRange As Range
    Set myRange = DynamicRange(Sheet1, "A", 2)
End Sub

함수 DinamicRange를 사용해서 간편하게 Sheet1에서 A2:A마지막셀 (A2:A1048576)을 myRange로 설정할 수 있다.

'VBA 이론' 카테고리의 다른 글

고급필터 + VBA  (0) 2024.12.17
Workbook, WorkSheet, Range  (0) 2024.12.03
범위 선택, Function()  (0) 2024.11.21
파일을 실행하는 VBA  (1) 2024.11.19
영어 주소지를 한글로 변환해주는 VBA  (3) 2024.11.15