Worksheet_Change 기능을 Module 에서 다루기

VBA
작성자
유지니_
작성일
2022-07-06 23:50
조회
122
엑셀버전 : M365

운영체제 : 윈도우10

칼럼이 2개짜리 Sheet 입니다.

Pallet No 스캔하면 커서는 Item 칼럼으로 자동 옮겨지고

Item 을 스캔하면 다음 row 의 Pno 에 커서가 옮겨집니다.

Pno Item
1  --> 2  -->
3  -->

(엑셀 복지사님의 도움으로)

다음 코드는 이상 없이 잘 작동 됩니다

Private Sub Worksheet_Change(ByVal Target As Range)

Set Bcol = Range("A:A")
Set Ccol = Range("B:B")

If Target.Count = 1 And Not IsEmpty(Target) And _
Not Application.Intersect(Target, Bcol) Is Nothing Then

Target.Offset(0, 1).Select

ElseIf Target.Count = 1 And Not IsEmpty(Target) And _
Not Application.Intersect(Target, Ccol) Is Nothing Then

Target.Offset(1, -1).Select

End If

End Sub

 

이렇게 생긴 테이블을 sheet(Sheet1, Sheet2, Sheet3.....) 마다 만들다 보니

작동은 이상없이 잘 되는데

Sheet 마다 똑같은 코드를 넣는것이 이상해서요

하나의 Module 에 넣어서 위의 기능을 여러 sheet 에서 사용 할 수는 없을까요?

 

 

 

전체 3

  • 2022-07-07 00:14

    @유지니_ 님 WorkSheet 이벤트 프러시저는 이벤트를 실행시킬 트리거를 시트 내에서 찾습니다. 따라서 각각의 시트에 스크립트를 넣어야 합니다.

    일반 모듈에 공통적인 스크립트를 넣고 이 매크로를 호출하는 방식으로 하더라도, 트리거가 작동될 내용과 일반 모듈에 있는 매크로를 호출하는 스크립트는 또 시트마다 각각 입력해줘야 하기 때문에 크게 의미가 없습니다.


  • 2022-07-07 09:42

    @유지니_ 님 Workboook의 Sheetchange 이벤트를 사용하시면 추가인수로 이벤트가 발생하는 sheet가 있어 시트이름으로 이벤트 실행을 제어할 수 있으므로 각각의 시트에 코드를 복사해 넣지 않아도 됩니다.

    모바일이라 샘플을 드리기 어렵네요.


  • 2022-07-07 10:11

    @유지니_ 님 현재_통합_문서 모듈에 아래 코드를 사용해 보세요.

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
            
        '// 시트 이름으로 이벤트 실행 여부 결정
        If Not Sh.Name Like "Sheet*" Then Exit Sub
        
        '// 수정된 영역에 따라 이벤트 실행 여부 결정
        If Target.Count > 1 Then Exit Sub
        If IsEmpty(Target) Then Exit Sub
        If Target.Column > 2 Then Exit Sub
    
        Application.EnableEvents = False
        If Target.Column = 1 Then Target.Offset(0, 1).Select
        If Target.Column = 2 Then Target.Offset(1, 0).Select
        
        Application.EnableEvents = True
        
    End Sub

    참고하세요.


전체 7,345
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[🏆 VBA 4주 완성 특별 스터디] 1기 - 우수 졸업생 및 후기, 축하합니다! (5)
오빠두엑셀 | 2022.07.31 | 추천 8 | 조회 1160
오빠두엑셀 2022.07.31 8 1160
공지사항 함수/공식
[신규 기능 업데이트!] 👉 이제 게시글 작성시 스크린샷 복/붙이 가능합니다! 😎 (2)
오빠두엑셀 | 2022.08.04 | 추천 4 | 조회 98
오빠두엑셀 2022.08.04 4 98
공지사항 함수/공식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (88)
오빠두엑셀 | 2021.10.28 | 추천 117 | 조회 6138
오빠두엑셀 2021.10.28 117 6138
41136 함수/공식
New 동적차트를 위한 이름관리자 함수 만들기 엑셀파일첨부파일
블링블링 | 23:12 | 추천 0 | 조회 7
블링블링 23:12 - 7
41132 함수/공식
New 함수를 간단히 할 수 있을까요? 엑셀파일 (1)
안동근 | 19:59 | 추천 0 | 조회 18
안동근 19:59 - 18
41129 기능/도구
New 빠른 실행 도구 모음에서 명령 레이블 표시 또는 숨기기 첨부파일 (6)
fabikim | 18:29 | 추천 0 | 조회 29
fabikim 18:29 - 29
41126 VBA
New VBA 자동화 용어 및 규칙 등의 작동원리 해석 문의 엑셀파일 (2) 답변완료
pjc**** | 16:35 | 추천 0 | 조회 35
pjc**** 16:35 - 35
41123 함수/공식
New 어떤 함수가 입력된건지 알고싶어요.(함수가 가려져 있는건지 여부도 알고싶네요) 첨부파일 (2) 답변완료
일개회사원 | 14:52 | 추천 0 | 조회 34
일개회사원 14:52 - 34
41117 피벗테이블
New 데이터 모델 관련 오류인데 어떤 오류인지 도저히 모르겠습니다ㅠ 첨부파일 (2) 답변완료
ㅎㅎ | 13:49 | 추천 0 | 조회 33
ㅎㅎ 13:49 - 33
41116 피벗테이블
New 피벗테이블 슬라이서 문의 첨부파일 (1)
조동호 | 13:38 | 추천 0 | 조회 25
조동호 13:38 - 25
41114 함수/공식
New Lookup 함수사용시 출력되는 날짜의 형식오류 첨부파일 (3)
조민양 | 13:16 | 추천 0 | 조회 24
조민양 13:16 - 24
41112 피벗테이블
New 엑셀 피벗테이블 필터부분을 가리는 방법을 알고 싶습니다! 첨부파일 (3)
이재호 | 12:58 | 추천 0 | 조회 26
이재호 12:58 - 26
41107 함수/공식
New 중첩 이프 함수 해결 방법 / 중첩 if 해결 방법 / 다중조건 첨부파일 (2) 답변완료
떡상가즈아 | 11:00 | 추천 0 | 조회 37
떡상가즈아 11:00 - 37
41106 함수/공식
New 2X2 엑셀 값 비교하는 함수가 가능할까요? 첨부파일 (1)
클루 | 10:56 | 추천 0 | 조회 32
클루 10:56 - 32
41099 파워쿼리/피벗
New 여러개의 데이터 파일(같은 양식)을 데이터연결하여 하나의 파일로 관리(주기 관리)하는 방법 엑셀파일 (4) 답변완료
pjc**** | 08:47 | 추천 -1 | 조회 55
pjc**** 08:47 -1 55
41096 피벗테이블
New 피벗테이블 날짜 슬라이서 제작시 오류 첨부파일 (2)
naver_616841992e55a | 06:11 | 추천 0 | 조회 34
naver_616841992e55a 06:11 - 34
41095 VBA
New 매크로 관련 질문이예요. 도움 부탁드립니다. (3)
AANNNDDDYY | 02:48 | 추천 0 | 조회 43
AANNNDDDYY 02:48 - 43
41094 함수/공식
New 수식의 이름관리자가 열리지 않습니다 (4)
abbado | 01:16 | 추천 0 | 조회 33
abbado 01:16 - 33
41090 VBA
New 길이 계산 관련 문의 드립니다. 첨부파일 (2)
심우민 | 2022.08.11 | 추천 -1 | 조회 43
심우민 2022.08.11 -1 43
41087 문서서식
New 셀 초록색 표시 오류 해결 유튜브를 봤습니다. (1)
이성일 | 2022.08.11 | 추천 0 | 조회 33
이성일 2022.08.11 - 33
41086 함수/공식
New 어떤 수식 사용해야되는지 알려주세요ㅜ 첨부파일 (4)
🍒 | 2022.08.11 | 추천 0 | 조회 54
🍒 2022.08.11 - 54
41083 VBA
New VBA LISTBOX 활용에 대한 궁금증 엑셀파일 (3) 답변완료
박성원 | 2022.08.11 | 추천 0 | 조회 39
박성원 2022.08.11 - 39
41080 함수/공식
New index, match 함수 사용해서 일치하는 날짜 찾기 첨부파일 (2)
033cola | 2022.08.11 | 추천 0 | 조회 33
033cola 2022.08.11 - 33
41079 VBA
New 엑셀시트PDF저장관련(저장하고싶은 시트만 체크박스를이용하여 선택) 엑셀파일 (2) 답변완료
qkznl**** | 2022.08.11 | 추천 0 | 조회 27
qkznl**** 2022.08.11 - 27
41076 함수/공식
New 시간과 분으로 된 형식을 분단위로 바꾸는 방법 첨부파일 (3)
김군 | 2022.08.11 | 추천 0 | 조회 34
김군 2022.08.11 - 34
41075 함수/공식
New 약 20여개 파일(폼은 동일)이 있는데 데이터 결과값만 파악할수 있는파일을 만드는 해결방법 엑셀파일
pjc**** | 2022.08.11 | 추천 1 | 조회 38
pjc**** 2022.08.11 1 38
41067 함수/공식
New 몇 일 이후의 날짜 계산 오류 첨부파일 (3) 답변완료
보라색양털 | 2022.08.11 | 추천 1 | 조회 36
보라색양털 2022.08.11 1 36
41064 함수/공식
New 카운트관련 3번째 질의 드립니다. ㅠㅠ 엑셀파일 (1)
Thekey_guy | 2022.08.11 | 추천 0 | 조회 30
Thekey_guy 2022.08.11 - 30
41061 함수/공식
New 월별로 해당하는 건수를 계산하고 싶어요 엑셀파일 (2)
꿈꾸는부자 | 2022.08.10 | 추천 0 | 조회 57
꿈꾸는부자 2022.08.10 - 57
41060 피벗테이블
New 합계, 개수로 각각 다른 값의 피벗테이블을 만들었으나 동일한 응시율이 표시되는 이유??? 엑셀파일 (3)
sky3**** | 2022.08.10 | 추천 0 | 조회 48
sky3**** 2022.08.10 - 48
41058 함수/공식
New Excel 2019 수식 FILTER 첨부파일 (1)
Merci getta | 2022.08.10 | 추천 0 | 조회 57
Merci getta 2022.08.10 - 57
41052 VBA
New 특정문자 제거 (2) 답변완료
천하무적 | 2022.08.10 | 추천 0 | 조회 70
천하무적 2022.08.10 - 70
41046 함수/공식
New 마지막 셀 이동을 위한 Match 함수에서 문자열과 선택옵션 -1의 의미 (3)
| 2022.08.10 | 추천 0 | 조회 58
2022.08.10 - 58