重置静态计数器vba

我有一个用户导入数据的Excel工作簿。 我有一个静态计数器来统计有多lessimport完成。 计数器代码..每次用户导入一个数据集时都会调用这个macros。

Public Sub Macro() Static i As Integer Worksheets("Hidden").Activate i = i + 1 Cells(i + 1, 1).Select ActiveCell.FormulaR1C1 = "=" & i Cells(2, 2).Select ActiveCell.FormulaR1C1 = "=" & i End Sub 

现在,如果用户通过按下“清除数据”button清除工作表中的所有数据,我希望静态计数器重置。 任何想法如何编码? 我一直在网上找,并没有find答案! TIA

您不必使用Staticvariables,而必须使用Publicvariables(在例程之外声明) – 这是其他macros可以“看见”它的唯一方式。

 Public i As Integer Public Sub Macro() Worksheets("Hidden").Activate i = i + 1 Cells(i + 1, 1).Select ActiveCell.FormulaR1C1 = "=" & i Cells(2, 2).Select ActiveCell.FormulaR1C1 = "=" & i End Sub 

添加一个可选的Boolean“reset”参数,默认为False:调用Macro True来重置计数器。

 Public Sub Macro(Optional reset As Boolean = False) Static i As Integer If reset Then i = 0 Exit Sub End If Worksheets("Hidden").Activate i = i + 1 Cells(i + 1, 1).Select ActiveCell.FormulaR1C1 = "=" & i Cells(2, 2).Select ActiveCell.FormulaR1C1 = "=" & i End Sub