VBA只运行一次宏

eur*_*ano 0 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
Run Code Online (Sandbox Code Playgroud)

arc*_*nct 6

没有开放工作表(据我所知).如果要在切换到工作表时执行宏,请使用Worksheet_Activate事件Worksheet_Calculate.

您可能还需要添加类似的内容

 If ActiveSheet.Name = "sheetnamehere" Then yourMacroHere
Run Code Online (Sandbox Code Playgroud)

Workbook_Open如果您希望在打开工作簿时工作表处于活动状态,则执行该事件.

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