我正在使用VBA For Dummies和上面提到的书的组合学习VBA。后者提出了一个简单的挑战(挑战2,第2章),我想问一些有关反馈的人。
挑战如下:
在工作表上放置一个Command Button控件并在Click()中编写一个程序 每次单击鼠标时将变量增加5的事件过程。 在消息框中输出此变量的值。
我将以下代码片段放在一起作为回应:
Sub CommandButton1_Click()
Dim AddClick As Integer
AddClick = Range("A1").Value
AddClick = AddClick + 5
Range("A1").Value = AddClick
MsgBox AddClick
End Sub
虽然代码有效,但我很确定有一种方法可以消除使用'Range(“A1”)。值'以'AddClick'变量为基础。我该怎么做呢?
*更新:感谢Cody Gray的建议(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。再次感谢Cody。
答案 0 :(得分:4)
我认为之前的两个样本都是错误的。正确的版本如下:
Sub CommandButton1_Click()
Static AddClick As Integer
AddClick = AddClick + 5
MsgBox AddClick
End Sub
答案 1 :(得分:1)
在模块级别定义变量 这样做会增加变量从过程到模块的范围。
用现有代码替换现有代码。
Option Explicit
Dim AddClick As Integer
Sub CommandButton1_Click()
AddClick = 0
AddClick = AddClick + 5
MsgBox (AddClick)
End Sub
注意:在程序级别定义变量将限制其寿命 即该变量在程序范围之外是不可访问的。