我在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`
答案 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格式添加到日期。
让我知道这是否适合你。