EVENT (2)
엑셀 VBA #85 / 이벤트 프로시저와 find 메서드 활용하기 [VBA]
반응형

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

 


Private Sub Worksheet_Change(ByVal Target As Range)

      Dim rng As Range
      Dim fc As Range
      
      If Not Intersect(Target, Columns("b")) Is Nothing Then
            Set rng = Sheet2.Range("a2:a32")
            
            On Error Resume Next
                  Set fc = rng.Find(Day(Target.Offset(0, -1)), , , xlWhole)
            On Error GoTo 0
            
            If Not fc Is Nothing Then
                  fc.Offset(0, 1) = Target.Value
            Else
                  MsgBox "정확한 값을 입력하세요."
            End If            
      End If
End Sub

vba#85.xlsm
0.02MB

 

 

2023.12.13 - 엑셀 VBA #13 / 셀 범위 선택하기_8 [VBA] - Intersect

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

2023.12.15 - 엑셀 VBA #42 / Find메서드_기본 [VBA]


https://www.youtube.com/watch?v=qAAJvBXT7zo&t=414s



 

반응형
  Comments,     Trackbacks
엑셀 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
최근 작성 글
최근 작성 댓글
최근 작성 트랙백
프로필
공지사항
글 보관함
캘린더
«   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