VBA - 定义用户表单以便稍后调用它

时间:2017-06-01 04:39:31

标签: excel vba excel-vba global-variables userform

如果不清楚,请提前抱歉,但出于某种原因我的代码最近停止工作,我不明白为什么。

基本上我在我的工作中创建了一个excel vba程序来做报告(即炉子报告或树木报告)。有一个封面形式,要求用户输入报告的各种细节(即参加者,日期,地址等......)。完成后,他们会选择要完成的报告(他们可以从封面页面找到5种不同的用户表单)。例如,如果他们选择Electrical,他们可以选择General,Stove或Hot Water System报告(请记住这一点)。相反,他们选择了Plumbing,他们可以选择一般或热水系统报告。继承人我的问题...我在所有用户表格上都有返回或返回按钮(封面页除外),我使用相同的用户表格进行热水系统和电气和管道的常规报告(因为文本框,复选框是相同的)。考虑到这一切......(对不起......).....

我如何定义要返回的用户形式(管道或电气)?

可以根据需要发布代码

1 个答案:

答案 0 :(得分:0)

您可以添加例如{Child}的属性Parent属性,因此孩子知道其父级。 HTH。

包含两个表单的简单示例:UserForm1UserForm2孩子

' This is parent Form

Private child As UserForm2

Private Sub UserForm_Initialize()
    Set child = New UserForm2
    Set child.Parent = Me ' here the parent is set so the child knows it
End Sub

Private Sub CommandButton1_Click()
    Me.Hide
    child.Show
End Sub
' This is Child Form which knows about it's parent

Private m_parent As Object

Public Property Get Parent() As Object
    Set Parent = m_parent
End Property

Public Property Set Parent(ByVal vNewValue As Object)
    Set m_parent = vNewValue
End Property

Private Sub CommandButton1_Click()
    ' Go back to parent
    Me.Hide
    m_parent.Show
End Sub