2016-11-14 37 views
0

ワークシートを開いたときにマクロの下を実行しています。問題は、セルの値を変更したり、イベントを実行したりするたびに、マクロが再び開始されることです。それを防ぐ方法は?VBAマクロを1回だけ実行します。

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

関連する問題