我正在尝试让用户从组合框中选择一个表单,根据选择,打开关联的用户表单,并将textbox1中的文本输入到新打开的用户表单中的textbox1中。我已经尝试过选择案例,如果那时候没有运气的话。请帮忙
Private Sub PrintSheet_Click()
Dim calltype As Variant
calltype = ComboBox1.Value
If calltype = "fire" Then
NewRunUserForm.Show
PrintUserForm.TextBox1.Value = NewRunUserForm.TextBox1.Value
ElseIf calltype = "accident" Then
AccidentUserForm.Show
PrintUserForm.TextBox1.Value = AccidentUserForm.TextBox1.Value
ElseIf calltype = "training" Then
TrainingUserForm.Show
PrintUserForm.TextBox1.Value = TrainingUserForm.TextBox1.Value
ElseIf calltype = "meeting" Then
MeetingUserForm.Show
PrintUserForm.TextBox1.Value = MeetingUserForm.TextBox1.Value
End If
End Sub
我也尝试过更改calltype,这似乎也没有用。 当我单击命令按钮时,没有任何反应。以上是我最近尝试过的代码。我想要一个与combox选择相关联的用户表单.show。
答案 0 :(得分:0)
尝试以下代码。它至少会告诉你在组合框中选择的值是什么。此外,在检查If
条件时,将值转换为小写。
Private Sub PrintSheet_Click()
Dim calltype As Variant
calltype = ComboBox1.Value
MsgBox "Value in ComboBox1: [" & CStr(calltype) & "]" 'remove this statement it later
If LCase$(calltype) = "fire" Then
NewRunUserForm.Show
PrintUserForm.TextBox1.Value = NewRunUserForm.TextBox1.Value
ElseIf LCase$(calltype) = "accident" Then
AccidentUserForm.Show
PrintUserForm.TextBox1.Value = AccidentUserForm.TextBox1.Value
ElseIf LCase$(calltype) = "training" Then
TrainingUserForm.Show
PrintUserForm.TextBox1.Value = TrainingUserForm.TextBox1.Value
ElseIf LCase$(calltype) = "meeting" Then
MeetingUserForm.Show
PrintUserForm.TextBox1.Value = MeetingUserForm.TextBox1.Value
End If
End Sub
答案 1 :(得分:0)
基本上,开放形式是"我"。您的Combobox将是Me.ComboBox1,但当前表单可以省略Me指定。现在您必须创建另一个表单对象。在您的代码中,您命名了这些表单,但您没有声明它们。在下面的代码中,我为这些表单提供了较短的名称,然后将其声明。
Private Sub PrintSheet_Click()
Dim calltype As String Dim SubForm As Object calltype = ComboBox1.Value Select Case calltype Case "accident" Set SubForm = New FrmAccident Case "fire" Set SubForm = New FrmFire Case "meeting" Case "training" End Select With SubForm .TextBox1.Value = Me.TextBox1.Value .Show End With
End Sub
UserForm对象" SubForm"被声明为后期绑定的对象。然后,根据组合框中的选择,将一个现有形式分配给SubForm对象。 最后,Subform中的Textbox1(无论哪一个)被赋予当前表单中Textbox1的值,即" Me",并显示子表单。您可以在此时添加像Me.Hide这样的代码,让Me形式在Subform打开时暂时消失,然后在完成Subform时再次显示。