2014-06-13 4 views
0

가능합니까? 내 통합 문서에서 .txt 파일을 만들고 정적 상자에 전자 메일을 보내고 명령 단추에 의해 호출되는 매크로가 있습니다. 셀 B1에 날짜가 포함되어있는 경우에만 실행되도록이 매크로를 편집 할 수 있습니까? 그렇다면 어떻게됩니까?셀에 날짜가있는 경우에만 매크로 실행

감사합니다.

Sub AnswerMe() 
If IsDate(Range("B1").Value) Then 
MsgBox "Plase enter a date in B1" 
msg = "Email" 
response = MsgBox(msg, vbYesNo) 
If response = vbYes Then 
CopyDistribute 
Else 
End If 
End If 
End Sub 
+0

위의 코드는 여전히 작동하지 않는다는 것을 아래에 나타냅니다. 그걸 작동 시켰 니? –

+0

문제는 당신이 B1에 입력 된 날짜를 원한다는 것입니다. 'isDate' 함수는 B1이 날짜 일 때 참을 리턴합니다. 그것을 변경해야하는 것은'If isDate (Range ("B1") .Value) = false then'입니다. 시도해 봐. 또한 CopyDistribute를 호출하고 있는지 확인하십시오. –

답변

2

당신이 명령 단추를 클릭 할 때이 날짜가 다음 그렇지 않으면 당신이 원하는 경우

If IsDate(Range("B1").Value) Then 
    'Code required 
End If 

으로 Sub commandbutton_click()End Sub 사이의 코드를 캡슐화 경우에만 코드를 실행되는지를 확인하려면 다음과 같은 시트를 열 때마다 시작됩니다. 일화를 변경하십시오.

Private Sub worksheet_activate() 

If IsDate(Range("B1").Value) Then 
    MsgBox "Sure thing honey it's a date" 
End If 

End Sub 
+0

Activate 이벤트는 특정 시트가 선택 될 때마다 매크로가 실행되도록 트리거하므로 권장하지 않습니다. 아직 +1. – L42

+0

도움을 주셔서 감사합니다. 내 목적을 위해 이것을 조정하기위한 시도에서 나는 첫 번째 게시물에 추가 한 코드를 생각해 냈습니다. 작동하지 않습니다. – user2727453

+0

은'CopyDistribute' 함수입니까? 이 경우 CallDistribute() 호출을 시도해야하지만, 예를 들어 Module1에 함수를 작성했다면'Module1.CopyDistribute()를 호출하는 것이 좋습니다. 또한'AnswerMe()'는 명령 단추를 클릭 할 때 실행되는 매크로입니다. 어떤 부분이 작동하지 않습니까? –

관련 문제