2016-11-14 1 views
0

워크 시트를 열 때 매크로 아래에서 실행 중입니다. 문제는 셀에서 값을 변경하거나 이벤트를 수행 할 때마다 매크로가 다시 시작된다는 것입니다. 그것을 막는 방법?VBA 매크로를 한 번만 실행하십시오.

Private Sub Worksheet_Calculate() 
Application.EnableEvents = False 
Dim i As Long 

i = Application.WorksheetFunction.CountIf(Range([W2], Cells(Rows.Count, "W").End(xlUp)), "tak") 
Worksheets("Arkusz1").Range("AZ1").Value = i 
If Worksheets("Arkusz1").Range("AZ1").Value > 0 Then 
MsgBox "Sa " & i & " wózki do przeglądu" 
Else 
MsgBox "Nie ma wózków do przeglądu" 
End If 
Application.EnableEvents = True 
End Sub 

답변

6

오프닝 워크 시트와 같은 것은 없습니다 (알고있는 한). 워크 시트로 전환 할 때 매크로를 수행하려면 Worksheet_Calculate 대신 Worksheet_Activate 이벤트를 사용하십시오.

또한 통합 문서를 열 때 시트가 활성화되어있는 경우 매크로를 실행하려는 경우 Workbook_Open 이벤트에

If ActiveSheet.Name = "sheetnamehere" Then yourMacroHere 

같은 것을 추가해야 할 수도 있습니다.

코드를 별도의 매크로로 이동하고 해당 매크로를 이벤트에서 호출하는 것이 좋습니다.

+0

Workbook_Open으로 변경해 주셔서 감사합니다. – eurano

관련 문제