0

我正在用 Ms-Word vba 编写代码。

我做了两个用户表单说userform_1userform_2

  • userform_1包含两个按钮和两个文本框。
  • userform_2是一个日历用户表单。

我编写了一个代码,用于在每个按钮单击事件上显示日历使用表单。

现在,我想编写一个代码,这样当用户单击第一个按钮时,选定的日历值将显示在 textbox1 中,当用户单击第二个按钮时,选定的值将显示在第二个文本框中。但它在文本框中显示相同的值。

请让我知道我怎么能做到这一点......

Private Sub CmB_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

    Main.Event_DblClick = True
    Dim SampleDate As Date
    frmAE_Tool.TextBox1.Text = Me.Value
    frmAE_Tool.TextBox2.Text = Me.Value

End Sub
4

1 回答 1

1

您可以做的是Sub在您的userform_2中创建一个来确定日历的输出。


用户表单_2:

声明Private如下变量:

Private mTextBox As Control

此文本框将是您日历的输出文本框

添加以下内容Sub

Public Sub SetOutput(pTextBox As Control)
    Set mTextBox = pTextBox
End Sub

这个 Sub 将允许决定您要使用哪个输出

像这样修改你的CmB_DblClick Sub

Private Sub CmB_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    'Others things that I didn't understand

    mToolbox = Me.Value
End Sub

用户表单_1:

对于第一个按钮,修改Click Sub如下:

Private Sub Btn1_Click
    [...]
    YourCalendarForm.SetOutput Textbox1
End Sub

第二个,像这样:

Private Sub Btn2_Click
    [...]
    YourCalendarForm.SetOutput Textbox2
End Sub
于 2013-05-16T16:55:58.430 回答