vb中if语句的条件是怎么的?这样怎么不行

来源:百度知道 编辑:UC知道 时间:2024/09/23 05:11:53
Private Sub Command3_Click()
Dim n As Integer
n = 0
End Sub
————————————
Private Sub Command4_Click()
Dim n As Integer
n = 1
End Sub
————————————
Private Sub Command1_Click()
If n = 0 Then
***********
ElseIf n = 1 Then
******************
End If
End Sub
大家帮忙看一下,为什么在按过Command4之后不是执行Command1_Click()中第二条语句呢?

这不是 if 的问题,是因为 n 的作用范围,在sub function if for while do等结构内定义的变量都只有在其范围内有效,超过范围就自动消除了,因此,在 Command1_Click()内的变量 n 不是你在其它两个 sub 中定义的 n ,如果你想要这三个 Sub 使用的是同一个 n ,那么你必须把 n 定义在三个 Sub 之外,比如:

Dim n As Integer '定义在Sub之外,最好用private或public 代替 dim

Private Sub Command3_Click()
n = 0
End Sub
————————————
Private Sub Command4_Click()
n = 1
End Sub
————————————
Private Sub Command1_Click()
If n = 0 Then
***********
ElseIf n = 1 Then
******************
End If
End Sub