我已阅读并应用了在类似主题上找到的解决方案,但似乎对我的情况没有任何作用。
因此,我想将一个变量从 Module1 的一个子模块传递到用户窗体。这是一个名为“provinceSugg”的字符串。
这是我的代码的相关部分:
Public provinceSugg As String
Sub probaCity()
[...]
If province = "" And city <> "" Then
provinceSugg = sCurrent.Cells(p, db_column).Offset(0, 1).Value
UserForm2.Label1 = "Do you mean " & city & " in " & provinceSugg & " ?"
UserForm2.Label1.TextAlign = fmTextAlignCenter
UserForm2.Show
Else
End If
End Sub
然后在我的用户表单代码中:
Private Sub userformBtn1_Click()
MsgBox provinceSugg
sMain.Range("J6").Value = provinceSugg
End Sub
当我运行我的程序时:
1/我的子进程调用的 MsgBox 中显示了provinceSugg 的内容(因此有一个provinceSugg,它不是一个空变量)。
2/从用户窗体调用的 MsgBox 是空的(因此传递值失败),当运行“ sMain.Range("J6").Value = ProvinceSugg”时,我的程序崩溃,并带有“Error 424 Object required”之类的内容(因此变量未能传递到用户表单)。
我尝试了在论坛和此处找到的所有内容(以不同的方式表明provinceSugg是一个公共变量,但仍然崩溃......)。
在此先感谢您的帮助 !
您将能够在用户表单中创建可由模块设置的公共变量。
这些变量只能在加载用户表单时访问。
在用户窗体中,为两个对象声明公共变量。
Public sMain As Worksheet
Public provinceSugg as string
Private Sub userformBtn1_Click()
MsgBox provinceSugg
sMain.Range("J6").Value = provinceSugg
End Sub
在该模块中,您可以评估这两个变量。
Sub probaCity()
[...]
If province = "" And city <> "" Then
provinceSugg = sCurrent.Cells(p, db_column).Offset(0, 1).Value
With UserForm2
.provinceSugg = provinceSugg
Set .sMain = sMain
.Label1 = "Do you mean " & city & " in " & provinceSugg & " ?"
.Label1.TextAlign = fmTextAlignCenter
.Show
End With
End If
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)