2014-03-28 6 views
0

범위의 셀이 변경되면 매크로가 자동으로 실행되도록하려고합니다 (C5에서 C25).사용자가 셀을 변경하면 매크로가 실행됩니다.

아래 코드에서 알 수 있듯이 계속할지 여부를 묻는 메시지 상자가 자동으로 나타납니다 (사용자가 예라고 표시 한 다음 매크로를 실행하는 경우).

셀 중 하나가 변경되면 코드를 실행할 수 없지만 (c5에서 c25로) 여기

코드 - 그것은 내 자신의 모든되지 않습니다 :

Private Sub Worksheet_Change(ByVal Target As Range) 
If Not Intersect(Target, Target.Worksheet.Range("C5:C25")) Is Nothing Then Reminder 
End Sub 
Sub Reminder() 
' 
' Reminder Macro 
' 
response = MsgBox("Do you want to set a reminder in Outlook for when the next update is required? If yes, make sure your Microsoft Outlook is open.", vbYesNo) 

If response = vbNo Then 
    MsgBox ("You selected 'No'") 
    Exit Sub 
End If 
'Rest of my macro code goes here... 

End sub 

감사합니다!

+0

이 코드는 워크 시트 모듈에 있습니까? 또는 일반 코드 모듈? 'Change' 이벤트 핸들러를 호출하기 위해서는 워크 시트 모듈에 있어야합니다. –

+0

워크 시트 모듈은 왼쪽에 있습니다. VBAProject (파일 이름) -> Microsoft Excel 개체와 모듈을 차례로 선택합니다. Module3에 있음 – Boswell

+1

Module3은 일반 코드 모듈입니다. 아래 내 대답을 참조하십시오. 구현 방법에 대한 질문이 있으면 알려주십시오. 코드가 제대로 작동하지 않습니다. 그냥 잘못된 위치에 있습니다. –

답변

1

코드가 워크 시트의 코드 모듈에 있는지 확인하십시오. 위의 설명에서 모듈 3에 있음을 나타냅니다. 워크 시트의 코드 모듈로 이동해야합니다.

enter image description here

0

시도 :

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Intersect(Range("C5:C25"), Target) Is Nothing Then 
     Call reminder 
    End If 
End Sub 
+0

고마워요.하지만 여전히 작동하지 않습니다./ – Boswell

0

귀하의 코드가 잘 작동, 당신은 워크 시트 개체에 넣어 있는지 확인하십시오. 또한 xlsm으로 저장하고 닫은 다음 다시 열 때까지 코드가 활성화되지 않을 것이라고 생각합니다.

+1

댓글을 달았습니다. David Zemens가 게시하기 전에 같은 점을 말했습니다. – brettdj

관련 문제