IsNumeric (2)
엑셀 VBA #14 / 셀 범위 선택하기_9 [VBA] - Intersect 실무예제
반응형

엑셀 VBA #14 / 셀 범위 선택하기_9 [VBA] - Intersect 실무예제


1. 목적 : 실무사례에서 Intersect가 어떻게 사용되는지 확인
2. 의도 : 특정 영역의 셀에 문자 입력 불가토록 함(즉 셀 값이 숫자 또는 빈 셀이어햐 함)
3. 적용기법 : 위크시트 이벤트(모듈이 아님), Intersect, IsNumeric

위크시트 이벤트 실행방법
콤보 박스에서 Worksheet선택, 본 예제에서는 Change선택




4. 코드

A2~D11 영역의 셀에는 문자 입력 불가토록 코딩함

 

Private Sub Worksheet_Change(ByVal Target As Range)

 

On Error GoTo er     '만약 에러가 발생하면, 아래의 er로 가라
If Not Intersect(Target, Columns("A:D")) Is Nothing Then
    If Target.Row > 1 And Target.Row < 12 Then
        If VBA.IsNumeric(Target) Then
        Else
            MsgBox   "숫자로 입력하세요"
            Target = ""        '타겟 셀에 문자등을 입력하였다면 그 문자를 삭제하는 코드
            Target.Select    '문자 삭제한 후, 커서가 다음 열 혹은 행으로 이동하지 않고 다시 타겟셀에 있도록하는 코드
            End If
        End If
End If

er:

End Sub

vba#14.xlsm
0.02MB

 

vba - intersect, event프로시져

 

 

https://www.youtube.com/watch?v=NBO4iXAEAhw&list=PLfxvqpVCYZ8e0qlyc_FU46neoWjO7yTWj&index=14

 

 

반응형
  Comments,     Trackbacks
vba - intersect, event프로시져
반응형

A2:D11범위에 숫자만 입력할 수 있도록 하며, 만약 문자 입력된 경우에는 메세지박스로 안내하는 기능.

 

VBA창에서 해당 시트(test시트)를 더블클릭

 

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Columns("A:D")) Is Nothing Then
    If Target.Row > 1 And Target.Row < 12 Then
        If VBA.IsNumeric(Target) Then
        Else
            MsgBox "숫자로 입력하세요"
            Target = ""
            Target.Select
        End If
    End If
End If

End Sub

 

 

엑셀 VBA #14 / 셀 범위 선택하기_9 [VBA] - Intersect 실무예제

 

출처 : 엑셀디자인 유튜버

연관강좌 : 엑셀 VBA #86 / 이벤트프로시저+EnableEvents 활용하기 [VBA]

                 엑셀 VBA #85 / 이벤트 프로시저와 find 메서드 활용하기 [VBA]

반응형
  Comments,     Trackbacks
최근 작성 글
최근 작성 댓글
최근 작성 트랙백
프로필
공지사항
글 보관함
캘린더
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
TODAY TOTAL