将一个对象作为参数从UserForm传递到另一个

时间:2019-08-30 09:08:02

标签: excel vba

我创建了一个Class类型的Employee

Private emplId   As String
Private name     As String
Private rank     As String
Private post     As String

我创建了一个具有Inside函数的模块,该模块返回对象类型Employee。

Public Function FuncNewPerson(Emplid As String) As Employee

Dim newPerson As New Employee

With newPerson
    newPerson.SetEmplid = Emplid
    newPerson.SetName   = mytab(25, 1)
    newPerson.SetRank   = mytab(23, 1)
    newPerson.SetPost   = mytab(27, 1)

Set FuncNewPerson = newPerson

我使用两个UserForms,在通过emplId选择ComboBox之后的第一个中,它初始化了一个对象类型Employee,然后我填写了所有{{第TextBox个对象中的{} 1}}具有对象的UserForm属性:

get

在这个RequestForm.TxtBoxPerson = person.GetName RequestForm.txtBoxRank = person.GetRank 上,我有一个UserForm叫第二个:

Button

在第二个Public Sub BtnVerify_Click() Me.Hide ValidationForm.Show End Sub 中,我还有其他UserForm可以填充:

TextBox

我想使用已经在内存中的对象,所以我的第一个想法是将其作为参数从第一种形式传递给第二种形式。

我当然已经在网上搜索过,但是现在我对此更加困惑,这就是为什么我在这里寻求帮助的原因:

  1. 获取一些线索
  2. 获取有关我的操作方式的反馈

谢谢

1 个答案:

答案 0 :(得分:1)

在第二种形式中,创建一个合适的变量

Private Person as Employee

然后创建一个属性

Property Set CurrentPerson(p as Employee)
   set person = p
End Property

然后在您的第一个表单的代码中设置此属性

Public Sub BtnVerify_Click()
    Me.Hide
    ValidationForm.Show
    Set validationform.currentperson = person

End Sub