永发信息网

VB——Sub过程(追加分数)

答案:2  悬赏:70  手机版
解决时间 2021-04-19 07:00
  • 提问者网友:缘字诀
  • 2021-04-18 10:15
VB——Sub过程(追加分数)
最佳答案
  • 五星知识达人网友:神鬼未生
  • 2021-04-18 10:41
你这里的两个sub中的x都是局部变量,也就是说只能在sub内部起作用,到了外部就失效了。所以要在sub外部定义变量x,使其成为全局变量。

其实最好的办法是用自定义函数,就可以不用定义全局变量了:

Private Sub Form_Click()
Dim x As Integer
x = 1
x=Mysub4(3+x)
Print x
End Sub

Private Function Mysub4(x As Integer)
x = 3 * x - 1
If x < 5 Then x = x + 9
Print x;
Mysub4=x
End Function

运行结果是 11 11

补充回答:出现“ByRef参数类型不符”的原因,是因为你没有定义x为Integer类型

再补充:

Private Sub Form_Click()
Dim x As Integer
x = 4
Mysub4 x
Print x
End Sub

Private Sub Mysub4(x As Integer)
x = 3 * x - 1
If x < 5 Then x = x + 9
Print x;
End Sub
全部回答
  • 1楼网友:等灯
  • 2021-04-18 11:05
因为两个变量 x都是过程变量而已。虽然名称相通,但只要离开了该过程,那么该变量也随之消失了。
比如,第一个过程的x只属于Sub Form_Click()的,第二个过程的x只属于Sub Mysub4()的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯