在打开工作表时,我在宏下运行。问题是每当我在单元格中更改值或执行任何事件时,宏都会再次启动。怎么预防呢?
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
答案 0 :(得分:6)
没有打开工作表(据我所知)。如果您希望在切换到工作表时执行宏,请使用Worksheet_Activate
事件而不是Worksheet_Calculate
。
您可能还需要添加类似
的内容 If ActiveSheet.Name = "sheetnamehere" Then yourMacroHere
如果您希望在工作簿打开时工作表处于活动状态时执行宏,请到Workbook_Open
事件。
我建议将代码移动到单独的宏中,并从事件中调用该宏。