VBA只运行一次宏

时间:2016-11-14 12:02:52

标签: excel 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

1 个答案:

答案 0 :(得分:6)

没有打开工作表(据我所知)。如果您希望在切换到工作表时执行宏,请使用Worksheet_Activate事件而不是Worksheet_Calculate

您可能还需要添加类似

的内容
 If ActiveSheet.Name = "sheetnamehere" Then yourMacroHere
如果您希望在工作簿打开时工作表处于活动状态时执行宏,请

Workbook_Open事件。

我建议将代码移动到单独的宏中,并从事件中调用该宏。