VBA只运行一次macros

当工作表打开时,我在macros下面运行。 问题是,每当我改变单元格中的值或执行任何事件macros再次启动。 如何预防呢?

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 

没有打开工作表(据我所知)这样的事情。 如果要在切换到工作表时执行macros,请使用Worksheet_Activate事件而不是Worksheet_Calculate

你也可能需要添加类似的东西

  If ActiveSheet.Name = "sheetnamehere" Then yourMacroHere 

Workbook_Open事件如果您要macros工作簿打开时如果工作表处于活动状态。

我build议将代码移动到一个单独的macros,并从事件中调用该macros。