//如果没有load,好像不行的哦。 如果没有load,可以通过forms.add进行添加Private Sub Command2_Click() Dim mform As String mform = "form3" mShowForm mform End Sub Private Sub mShowForm(ByVal FormName As String) Dim mFrm As Object For Each mFrm In Forms If UCase(mFrm.Name) = UCase(FormName) Then mFrm.Show Exit Sub End If Next Set mFrm = Forms.Add(FormName) mFrm.Show End Sub
'呵呵,这种帖子我回了N个了, '可使用Script Control或使用VBA.dll的EbExecuteLine执行VB脚本, '至于使用Script Control来如何完成,在工程中引用Microsoft Script Control就行,这个 '留个作业让你自己去完成 '如下仅仅以VBA的EbExecuteLine方法来处理该问题 Option ExplicitPrivate Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As LongPublic Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0 End Function Private Sub Form_Load() With List1 .AddItem "frmB" .AddItem "frmC" .AddItem "frmD" End With End SubPrivate Sub List1_Click() ExecuteLine List1.Text & ".Show vbmodal" '执行相应Form的Show方法显示窗体 End Sub
Private Sub Label1_Click()
Dim f As New frm1
f.Show
End Sub
只有全部先load,不show,然后取了名称之后再unload。ok了。
如果已经load的。就hide。
如果没有load,可以通过forms.add进行添加Private Sub Command2_Click()
Dim mform As String
mform = "form3"
mShowForm mform
End Sub
Private Sub mShowForm(ByVal FormName As String)
Dim mFrm As Object
For Each mFrm In Forms
If UCase(mFrm.Name) = UCase(FormName) Then
mFrm.Show
Exit Sub
End If
Next
Set mFrm = Forms.Add(FormName)
mFrm.Show
End Sub
'可使用Script Control或使用VBA.dll的EbExecuteLine执行VB脚本,
'至于使用Script Control来如何完成,在工程中引用Microsoft Script Control就行,这个
'留个作业让你自己去完成
'如下仅仅以VBA的EbExecuteLine方法来处理该问题
Option ExplicitPrivate Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As LongPublic Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Private Sub Form_Load()
With List1
.AddItem "frmB"
.AddItem "frmC"
.AddItem "frmD"
End With
End SubPrivate Sub List1_Click()
ExecuteLine List1.Text & ".Show vbmodal" '执行相应Form的Show方法显示窗体
End Sub
还是用Script吧。
楼上两位大虾说得非常有理老实讲我还真没试过EXE,扇自己两耳光先!首先要向所有我提供了同种方法的兄弟们郑重宣布:我实在是太太太对不起你们了,给你们以误导,还靠此招摇撞骗了不少分。希望你们不要以同种方式害人。 :)rainstormmaster(暴风雨 v2.0) 、lsftest()高人呵,你们给了我悔过自新的机会。建议扣我分吧,我认罪