UserForm将DatePicker添加到Monthview并使用数据填充ActiveCell

时间:2014-07-03 16:25:07

标签: excel vba excel-vba datepicker monthcalendar

我在VBA中使用MonthView表单,允许用户右键单击并选择InsertDate,然后从表单中选择日期,然后填入Active Cell。这段代码工作正常。问题是我需要增加时间(军事)时间(即04/23/2014 18:11)。

我在VBA中使用DateTimePicker表单并将其添加到表单中。现在我有一个月视图和一个自定义格式为HH:mm的DT Picker。下面列出了整个用户表单的代码。代码的另一部分在“ThisWorkbook”中,它只是构建上下文菜单按钮“插入日期”并附加日历和显示日历的模块。我的问题在Sub DTPicker中。我希望MonthView和DTPicker的值使用上面提到的格式填充活动单元格。有什么建议吗?

先谢谢!!

`Private Sub CommandButton1_Click()
Unload Me
End Sub


Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)
On Error Resume Next

??????


End Sub


Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
On Error Resume Next
    ActiveCell.value = DateClicked
    Unload Me
End Sub

Private Sub UserForm_Click()

End Sub


Private Sub UserForm_Initialize1()
    If IsDate(ActiveCell.value) Then
        Me.MonthView1.value = ActiveCell
    Else
        Me.MonthView1.value = Now
    End If
End Sub



Private Sub UserForm_Activate()
    With frmCalendar
        .Top = Application.Top + 340
        .Left = Application.Left + 345
    End With
End Sub`

1 个答案:

答案 0 :(得分:0)

我不确定日期和时间选择器将在何处插入值以及它们返回的值的确切位置,但您可以尝试以下方式格式化为您需要的等待:

将DT Picker返回的值设置为a变量,然后

b = Format(a, "m/d/yyyy HH:mm")

现在根据需要将b的值写入单元格。

希望有所帮助:)

修改

这个怎么样:

a = Worksheets("Sheet1").Range("A1") ' value from MonthView
b = Worksheets("Sheet1").Range("B1") ' value from Date Picker

c = Format(a + b, "m/d/yyyy HH:mm") ' combined value in the requested format.

Worksheets("Sheet1").Range("D5").Value = c

Screen http://im68.gulfup.com/b01sVD.png

编辑2:

我已经浏览了您在评论中发布的链接中的视频,并假设您要插入当前时间以及所选日期,您可以更新代码的以下部分:

Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
On Error Resume Next   
a = DateClicked
b = Time
c = Format(a + b, "m/d/yyyy HH:mm") ' combined value in the requested format.
ActiveCell.value = c
Unload Me
End Sub

这样当用户选择日期时,当前时间也会以m / d / yyyy HH:mm格式添加到日期。

让我知道这是否适合你。