我在VBA一个模块最顶部申明了一个变量 :private n1,我理解N1变量在这个模块中都有效,这个模块中写了一个函数,在这个函数中对N1赋值,然后,我在同一个模块中写了Sub Technic_Paint()事件,在其中使用N1变量,这时就出现问题了,发现Sub Technic_Paint()中的N1和之前那个函数赋值后的N1不一样,MSGBOX 弹出N1看是什么都没有。
我的目的是把函数中计算后的N1 变量传递到Sub Technic_Paint()事件中使用,请问如何达到这个目的?
那请问如何达到我说的参数传递的目的呢?
贴一个能呈现出此问题的范例代码我们看一下,以便我们详细了解你遇到的问题
'该模块主要用来保存自定义公式函数主函数,不要拿做他用
private x1,y1,x2,y2
Function Main01(Formula)
x1=10
y1=10
x2=100
y2=100
end function
Sub Technic_Paint()
dim x1,y1,x2,y2
msgbox x1
Set grid = Technic.GetGridByName("Main")
Grid.DrawEllipse x1,y1,x2,y2,255
End Sub
例如上述代码,Main01函数通过PEL语言调用执行,然后在PAINT事件中画图,要使用Main01函数赋值的X1,Y1,X2,Y2,但通过MSGBOX查看X1,发现弹出的窗口中就是一个空白,就是说X1什么值都没有。