在Form1的声明段中用Public 定义你的变量 Public AAA As Integer在建立的模块中的Public过程中调用如下Public Sub GG() Form1.txtFile.Text = Form1.AAA End Sub
看看一下代码,会对您有帮助 'Form的代码Option Explicit Public inta As Integer '一定要为PublicPrivate Sub Command1_Click() MsgBox doubleX() End SubPrivate Sub Form_Load() inta = 2 End Sub'模块Module1的代码 Option ExplicitPublic Function doubleX() As Integer doubleX = 2 * Form1.inta End Function
那只能通过传递参数来实现。例如function(...,byval frmName as string)
我想可能这位兄弟的本意是:存在许多窗体,每个窗体都有这样的一个变量需要被模块过程调整,所以在模块中不能指定具体的模块变量名,需要传递参数来确定是哪一个窗体,实现代码如下。 ====Code in Form1======== Public kk As LongPrivate Sub Command1_Click() modify Me MsgBox kk End SubPrivate Sub Form_Load() kk = 1 End Sub====Code in module1=============== Public Sub modify(obj As Object) Dim y As Long y = CallByName(obj, "kk", VbGet) CallByName obj, "kk", VbLet, y + 1 End Sub
Form1.txtFile.Text = Form1.AAA
End Sub
'Form的代码Option Explicit
Public inta As Integer '一定要为PublicPrivate Sub Command1_Click()
MsgBox doubleX()
End SubPrivate Sub Form_Load()
inta = 2
End Sub'模块Module1的代码
Option ExplicitPublic Function doubleX() As Integer
doubleX = 2 * Form1.inta
End Function
变量是窗体(类)级的。
====Code in Form1========
Public kk As LongPrivate Sub Command1_Click()
modify Me
MsgBox kk
End SubPrivate Sub Form_Load()
kk = 1
End Sub====Code in module1===============
Public Sub modify(obj As Object)
Dim y As Long
y = CallByName(obj, "kk", VbGet)
CallByName obj, "kk", VbLet, y + 1
End Sub