이 페이지에서
구문
ClearRange 범위1, 범위2, ...
인수구분
형식 설명
범위
선택
Variant
값을 초기화할 범위입니다. 기본값은 "초기화범위" 입니다.
범위(Range)로 직접 입력하거나, 범위를 문자로 입력할 수 있습니다.
마스터 코드
복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요Sub ClearRange(ParamArray Rngs() As Variant)
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 ([https://www.oppadu.com](https://www.oppadu.com/))
'▶ ClearRange 함수
'▶ 지정한 범위 값을 초기화합니다. 범위를 직접 지정하거나 범위를 문자로 입력할 수 있습니다.
'▶ 인수 설명
'_____________Rngs : 값을 초기화할 범위입니다.
'▶ 사용 예제
'ClearRange "범위1", Range("A1:A10")
'###############################################################
Dim Rng As Variant: Dim Rs As Variant
Dim r As Range: Dim a As Range: Dim v As Variant: Dim vs As Range
Dim lngType As Long
Application.ScreenUpdating = False
Set r = Selection
If IsMissing(Rngs) Then Rngs(0) = "초기화범위"
If UBound(Rngs()) > 0 Then
ClearArrRngs:
For Each Rng In Rngs
If IsObject(Rng) Then
lngType = 0
For Each a In Rng
GoTo ClearRng
ClearNextRng:
Next
Else
If IsArray(Rng) Then
lngType = 1
For Each v In Rng
If IsObject(v) Then a = v Else Set a = Range(v)
GoTo ClearRng
ClearNextMixedRng:
Next
Else
lngType = 4
Set a = Range(Rng)
GoTo ClearRng
ClearNextMixedStr:
End If
End If
Next
Else
If IsObject(Rngs(0)) Then
Set a = Rngs(0)
lngType = 3
GoTo ClearRng
Else
If IsArray(Rngs) Then GoTo ClearArrRngs
If InStr(1, ",", CStr(Rngs(0))) > 0 Then
lngType = 2
vs = Split(CStr(Rngs(0)), ",")
For Each Rng In vs
Set a = Range(Trim(Rng))
GoTo ClearRng
ClearNextStr:
Next
Else
Set a = Range(CStr(Rngs(0)))
lngType = 3
GoTo ClearRng
End If
End If
End If
GoTo Finally
ClearRng:
a.Parent.Activate
a.Select
Selection.ClearContents
If lngType = 0 Then GoTo ClearNextRng
If lngType = 1 Then GoTo ClearNextMixedRng
If lngType = 2 Then GoTo ClearNextStr
If lngType = 3 Then GoTo Finally
If lngType = 4 Then GoTo ClearNextMixedStr
Finally:
r.Parent.Activate
r.Select
Application.ScreenUpdating = True
End Sub
활용 예제
이름정의범위 · 특정 시트 범위 초기화
ClearRange
'"초기화범위"라는 이름정의범위의 값을 초기화합니다.
ClearRange ThisWorkBook.WorkSheets("직원명부").Range("A1:A10")
'직원명부 시트의 "A1:A10" 범위 값을 초기화합니다.
여러 범위를 한 번에 초기화
ClearRange "초기화범위", Range("A1:A10"), Range("범위1")
'초기화범위, A1:A10 범위 등 여러 범위 값을 초기화합니다.
안내사항
인수 없이 실행하면 "초기화범위" 라는 이름정의범위의 값을 지우므로, 값을 지울 범위를 미리 "초기화범위"로 이름 정의해 두어야 합니다.
셀 병합 여부와 관계없이 값을 초기화합니다.
댓글 3
로그인 후 댓글을 작성할 수 있습니다.
Jan.J
2023.02.14 17:49
강의 감사합니다. 좋은 참여입니다.
효댕
2023.06.21 09:26
덕분에 내용이 깔끔해졌습니다. 감사합니다:)
강민준🤗
2024.08.11 12:04
좋은 자료 감사합니다.🙇♂️