挑战:MS Excel VBA编程的绝对初学者

我正在学习VBA使用VBA傻瓜和上面提到的书的组合。 后者提出了一个简单的挑战(挑战2,第2章),我想问一些反馈意见。

挑战如下:

在工作表上放置一个Command Button控件,并在Click()事件过程中编写一个程序,每次点击一下鼠标,variables就会增加一个variables5。 在消息框中输出这个variables的值。

我已经把下面的代码片段放在一起作为回应:

Sub CommandButton1_Click() Dim AddClick As Integer AddClick = Range("A1").Value AddClick = AddClick + 5 Range("A1").Value = AddClick MsgBox AddClick End Sub 

虽然代码有效,但我敢肯定,有一种方法可以避免使用'Range'(“A1”)。Value'来创build'AddClick'variables。 我怎么去做这个?

*更新:感谢科迪格雷的build议(http://articles.techrepublic.com.com/5100-10878_11-5854605.html),我已经修改了以下代码 – 现在工作得很好(编辑为进一步简化):*

 Sub CommandButton1_Click() Static AddClick As Integer AddClick = AddClick + 5 MsgBox AddClick End Sub 

Simples。 再次感谢科迪。

我认为以前的两个样本都是错的。 正确的版本如下:

 Sub CommandButton1_Click() Static AddClick As Integer AddClick = AddClick + 5 MsgBox AddClick End Sub 

在模块级定义variables。
这样做会增加从过程到模块的variables范围。

用这个replace现有的代码。

 Option Explicit Dim AddClick As Integer Sub CommandButton1_Click() AddClick = 0 AddClick = AddClick + 5 MsgBox (AddClick) End Sub 

注意:在过程级别定义variables会限制其寿命。
即该variables不能在程序范围之外访问。