2016-04-18 19 views
0

新しいVBA- ... ユーザーフォームを初期化し、2つの主要なユーザーフォームの1つから値を入力しようとしました。どちらの主要なユーザーフォームも、同じ数の列と同じ列の同じデータを持つ同じ名前のリストボックスを持ちます。理想的には、私はuserform3を呼び出し、userform1またはuserform2のいずれかを参照したいと思う。変数を使用してExcelユーザーフォームを初期化する

Private Sub btEditAppt_Click() 
fmEditAppt.UserForm_Initialize (Me) 
End Sub 

OR大手userform2(ボタンの名前が同じである)::UserForm1で大手

Private Sub btEditAppt_Click() 
fmEditAppt.UserForm_Initialize (Me) 
End Sub 

呼び出しがuserform3:

Public Sub UserForm_Initialize(formFORM As UserForm) 
Me.lbSerial = Format(formFORM.listAppts.Column(0), "0000") 
Me.lbPSerial = Format(formFORM.listAppts.Column(1), "0000") 
Me.tbApptDate = Format(formFORM.listAppts.Column(2), "MM/DD/YYYY") 
Me.lbFirst = formFORM.listAppts.Column(3) 
Me.lbLast = formFORM.listAppts.Column(4) 
Me.tbDetails = formFORM.listAppts.Column(5) 
End Sub 

をユーザーフォーム変数が飛んでいません、明らかに。助けて? Thx

答えて

0

通常のようなフォームを呼び出すと、正しいフォームを見つけた後に、既に読み込まれたフォームを繰り返してその変数を処理できます。

Dim Obj As Object 
For Each Obj In VBA.UserForms 
    'Assuming you only have one form open prior to showing this one 
    If StrComp(Obj.Name, Me.Name, vbTextCompare) = 0 Then 
     Me.lbSerial = Format(Obj.listAppts.Column(0), "0000") 
     Me.lbPSerial = Format(Obj.listAppts.Column(1), "0000") 
     Me.tbApptDate = Format(Obj.listAppts.Column(2), "MM/DD/YYYY") 
     Me.lbFirst = Obj.listAppts.Column(3) 
     Me.lbLast = Obj.listAppts.Column(4) 
     Me.tbDetails = Obj.listAppts.Column(5) 
    End If 
Next Obj 
+0

十分にあなたに感謝することはできません。編集のみが設定されましたStrComp()<> 0 –

+0

喜んで私は助けて歓迎することができました! :) – CaffeinatedCoder

関連する問題