添加一个新工程,添加两个窗体Form1,Form2,然后在form1上面放一个命令按钮即可看到效果:
Option Explicit
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
Private Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Private Sub Command1_Click()
Dim strTest As String
strTest = "Form2.Show vbModal"
ExecuteLine strTest
End Sub
---------------------------------------------------------------
第二种方法(我更喜欢第一种,因为它可以执行任何命令行,第二种只能显示窗体),在Form1上再添加一个文本框Text1:
Option Explicit
Private Function ShowNamedForm(strForm As String) As Form
Dim frmTemp As Form
Set frmTemp = Forms.Add(strForm)
frmTemp.Show
Set ShowNamedForm = frmTemp
End Function
Private Sub Command1_Click()
ShowNamedForm Text1.Text
End Sub
Private Sub Form_Load()
Text1.Text = "Form2"
End Sub
Option Explicit
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
Private Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Private Sub Command1_Click()
Dim strTest As String
strTest = "Form2.Show vbModal"
ExecuteLine strTest
End Sub
---------------------------------------------------------------
第二种方法(我更喜欢第一种,因为它可以执行任何命令行,第二种只能显示窗体),在Form1上再添加一个文本框Text1:
Option Explicit
Private Function ShowNamedForm(strForm As String) As Form
Dim frmTemp As Form
Set frmTemp = Forms.Add(strForm)
frmTemp.Show
Set ShowNamedForm = frmTemp
End Function
Private Sub Command1_Click()
ShowNamedForm Text1.Text
End Sub
Private Sub Form_Load()
Text1.Text = "Form2"
End Sub