나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 slgi (slgi97)

추천:  2
파일:     조회:  1432
제목:   [RE]동일?매크로?조합?방법?질문!
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007): 2016

* 아래줄에 질문을 작성하세요 >>


안녕하세요. 한창 매크로 사용에 신세계를 느끼고 있는 초짜입니다.
블로그에서 갖다붙여넣기하면서 업무에 활용 중인데..

밑에 동일한 코드구문을 중복 적용해서 사용해보려고 하는데 작동이 안되네요.
완전 초보라 근본적인 문제를 이해하지 못하니 간단한 설명도 해주시면 감사하겠습니다!!

블로그상 보니 표준모듈이 아닌 시트 모듈에서 편집하라고 하네요.
우선 1개만 할 때는 잘 작동해서 변형 적용 중에 있습니다.


Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub                         '한 셀 선택시만 매크로 작동
    If Target.Address(0, 0) <> "E81" Then Exit Sub       'E81셀 변경시에만 매크로 작동
    
    Dim strAddr As String                                         '처음 검색하여 찾은 셀의 주소 넣을 변수
    Dim rngC As Range                                           '검색하여 찾은 영역을 넣을 변수
    
    With ActiveSheet.UsedRange.Offset(81)                 '81행 제외한 전체영역에서
        Set rngC = .Find(what:=Range("E81").Value, lookat:=xlPart)
            '처음 일치하는 데이터를 찾아 rngC에 넣고
                
        If Not rngC Is Nothing Then  '만일 일치하는 셀이 있으면
            Application.Goto Reference:=Range(rngC.Address), Scroll:=True
                '찾은 셀을 화면 제일 왼쪽 위쪽에 위치
        End If
    End With
End Sub

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub                         '한 셀 선택시만 매크로 작동
    If Target.Address(0, 0) <> "G81" Then Exit Sub       'G81셀 변경시에만 매크로 작동
    
    Dim strAddr As String                                         '처음 검색하여 찾은 셀의 주소 넣을 변수
    Dim rngC As Range                                           '검색하여 찾은 영역을 넣을 변수
    
    With ActiveSheet.UsedRange.Offset(81)                 '81행 제외한 전체영역에서
        Set rngC = .Find(what:=Range("G81").Value, lookat:=xlPart)
            '처음 일치하는 데이터를 찾아 rngC에 넣고
                
        If Not rngC Is Nothing Then  '만일 일치하는 셀이 있으면
            Application.Goto Reference:=Range(rngC.Address), Scroll:=True
                '찾은 셀을 화면 제일 왼쪽 위쪽에 위치
        End If
    End With
End Sub




==============[하하파더님 글에 대한 답변입니다]==============
2개의 함수를 하나의 시트에 넣으시면 안됩니다. 말씀드린것 처럼  Worksheet_Change는 이벤트에 대한 이름이므로 Sheet 당 하나여야 합니다. 
아래 코드 TEST는 안해 봤습니다. 참고하세요

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub  
    Dim strAddr As String
    Dim rngC As Range

   if Target.Address(0, 0) = "E81" Then
    With ActiveSheet.UsedRange.Offset(81)
        Set rngC = .Find(what:=Range("E81").Value, lookat:=xlPart)               
        If Not rngC Is Nothing Then
            Application.Goto Reference:=Range(rngC.Address), Scroll:=True
        End If
    End With
  endif
   if Target.Address(0, 0) = "G81" Then
    With ActiveSheet.UsedRange.Offset(81)
        Set rngC = .Find(what:=Range("G81").Value, lookat:=xlPart)
        If Not rngC Is Nothing Then
            Application.Goto Reference:=Range(rngC.Address), Scroll:=True
        End If
    End With
  endif
End Sub
 
[불량 게시물 신고]  
하하파더작동 잘되네요!!!! 여러번 친절한 답변 감사드립니다!!!

end if를 써야하는게 키포인트인가 보군요
04-22 (11:26)
삭제 ■신고
        
  

작성일 : 2020-04-22(11:22)
최종수정일 : 2020-04-22(11:22)
 


 ◎ 관련글

  제 목   작성자   날짜
동일 매크로 조합 방법 질문! 하하파더 2020-04-22
[RE]동일?매크로?조합?방법?질문! slgi 2020-04-22