我有一个excel工作簿,用户可以在其中导入数据。我有一个静态计数器来计算完成了多少次进口。计数器代码..每次用户导入数据集时都会调用此宏。
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
现在,如果用户通过按"清除数据"清除工作表中的所有数据。按钮我希望静态计数器重置。关于如何编码的任何想法?我一直在网上找不到答案! TIA
答案 0 :(得分:3)
添加可选的布尔值"重置"默认为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
答案 1 :(得分:2)
不必使用静态变量,而是必须使用Public变量(在例程之外声明) - 这是其他宏可以“看到”它的唯一方式。
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