一个Excel用户窗体中所有组合框的一个日期选择器

时间:2018-10-24 16:35:49

标签: excel vba datepicker

我想完成的事情:

  1. 在用户窗体上具有单独的组合框,这样,当单击单个下拉按钮时,将加载带有日历控件的全局用户窗体。由于我将有多个组合框,因此继续添加带有日历控件的新的单独用户窗体将是不可行的。取而代之的是,只有一个带有日历控件的主要用户窗体,该控件负责我所有组合框的所有工作。

  2. 从全局日期选择器日历控件中选择一个日期时,将选定的日期插入到单击的组合框中。

我已经找到了作品,但是由于我是新来的,所以我对它们一无所知。

1 个答案:

答案 0 :(得分:0)

考虑一下,我可以想到一种解决方案。 添加标签。

单击组合框时,标签将具有组合框名称,然后从此处单击日历控件中的日期时,会将日期发送到标签中的组合框名称。 enter image description here

我只是抓住了工具箱中可用的所有日历控件,您的日历控件可能有所不同。

Private Sub ComboBox1_DropButtonClick()
    Me.Label1 = Me.ComboBox1.Name
End Sub
Private Sub ComboBox2_DropButtonClick()
    Me.Label1 = Me.ComboBox2.Name
End Sub
Private Sub ComboBox3_DropButtonClick()
    Me.Label1 = Me.ComboBox3.Name
End Sub

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
    s = Me.Label1.Caption
    Me.Controls(s) = Me.MonthView1.Value
End Sub

@MathieuGuindon指出,当单击组合框时,可以将标签分配给Calendar控件,则不必放置标签方法。

感谢Mathieu ...

Private Sub ComboBox1_DropButtonClick()
    Me.MonthView1.Tag = Me.ComboBox1.Name
End Sub
Private Sub ComboBox2_DropButtonClick()
    Me.MonthView1.Tag = Me.ComboBox2.Name
End Sub
Private Sub ComboBox3_DropButtonClick()
    Me.MonthView1.Tag = Me.ComboBox3.Name
End Sub

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
    s = Me.MonthView1.Tag
    Me.Controls(s) = Me.MonthView1
End Sub