从另一个用户窗体打开 vba 创建的日历?

Opening a vba-created calendar from another userform?

在 64 位 MS Office 中,不再有日期选择器。

我找到了一个 VBA 创建的日历,由 class 和一个用户表单组成。

我已将这些元素导入到我的 Excel 文件中。

如何从我的 Userform2 打开日历?我的 Userform2 有一个日期值字段。使用按钮调用 Userform 那么如何从我的 Userform2 调用日历?

我是VBA的新手,我希望得到详细的回答:)

如果日历包含在用户窗体中,找到该用户窗体的名称,然后将命令按钮添加到 Userform2 并使用类似于以下的代码:

Private Sub CommandButton1_Click()
        dateUserfom.Show
End Sub

控件的区域性问题

虽然方便,但对于那些试图在德国以外(甚至可能在德国境内)使用它的人来说,此控件会产生错误,因为它 hard-coded 依赖日期格式“dd.mm.yyyy” — 自 1996 年以来 official date standard 标准 任何地方(包括德国)

要解决此问题,请将四个有问题的行中的每一行替换为以下备选方案,这些备选方案将 DateSerial 函数用作 "international date handling solution"。 (在 frmCalendar 中找到它们的最快方法是在项目中搜索“01.”。)

intDayCounter = Weekday(DateSerial(dYear, dMonth, 1), vbMonday)  


datLastDayMonth = fLastDayInMonth(DateSerial(dYear, dMonth, 1))  


Me.Controls(strLabel).Caption = Mid(fLastDayInMonth(_
    DateSerial(dYear, dMonth - 1, 1)), 1, 2) - intVormonat  


Me.Controls(strLabel).Caption = Mid(fLastDayInMonth(_
    DateSerial(dYear - 1, dMonth + 11, 1)), 1, 2) - intVormonat  

使用控件是一个userform

要在您的用户表单上添加此自定义控件:

  • 向您的用户表单添加命令按钮

  • Right-click新建按钮并点击View Code

  • 将下面的代码粘贴到按钮 _Click() 过程中


frmCalendar.Show  
TextBox1 = g_datCalendarDate

...其中 TextBox1 是您想要 selected 日期的控件的名称。

现在单击该按钮将打开日历,允许用户select 一个日期,关闭日历,并用 selected 日期填充指定的控件。