У меня есть пользовательская форма, которая требует от пользователя ввода определенной даты и времени через два отдельных поля со списком, cboStartDate, cboStartTime. Пользователь также должен будет ввести продолжительность в текстовом поле txtDuration.
После сохранения дата и время начала будут сохранены в отформатированной ячейке [ДД/ММ/ГГГГ ЧЧ:ММ AM/PM]. Дата и время окончания будут рассчитаны из поля продолжительности и сохранены в другой ячейке с таким же форматированием. Что-то вроде этого:
+-----------------------+-----------------------+ | startTime | endTime | +-----------------------+-----------------------+ | 2/4/2012 11:30:00 AM | 2/4/2012 2:00:00 PM | +-----------------------+-----------------------+
Однако после запуска пользовательской формы время начала не сохраняется, а время окончания не рассчитывается. Что-то вроде этого:
+-----------------------+-----------------------+ | startTime | endTime | +-----------------------+-----------------------+ | 2/4/2012 12:00:00 AM | 2/4/2012 12:00:00 AM | +-----------------------+-----------------------+
Ниже моя часть моего кода VBA:
Dim iRow As Long
Dim ws As Worksheet
Dim startDate As Date
Dim unFmtStartDuration() As String
Dim startDuration As Double
Dim minTest As Integer
Dim endDate As Date
Dim endDuration As Double
Set ws = Worksheets("EVENTS")
'Search for the last row in the worksheet
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'Date manipulation and set start and end timings
unFmtStartDuration() = Split(cboStartTime.Text, ":")
startDuration = unFmtStartDuration(0)
If unFmtStartDuration(1) = "00" Then
minTest = 0
Else
minTest = unFmtStartDuration(1)
If minTest = 30 Then
startDuration = startDuration + 0.5
End If
End If
startDate = DateValue(DateAdd("h", startDuration, cboDate.Text & " 12:00AM"))
ws.Cells(iRow, 4).Value = startDate
endDuration = txtDuration.Value
endDate = DateValue(DateAdd("h", endDuration, startDate))
ws.Cells(iRow, 5).Value = endDate
Итак, как я могу разобраться с этой частью? Был бы признателен за любую помощь здесь. Спасибо.
P.S. Хотел бы разместить скриншоты здесь, но моя репутация здесь слишком низкая для этого. Извиняюсь.