В моей пользовательской форме у меня есть эти данные:
DateBox1: 1/5/2020 | s1hh: 2 | s1mm: 0 | s1ampm: AM
DateBox6: 3/5/2020 | e1hh: 2 | e1mm: 0 | e1ampm: AM
Другими словами, это 1/5/2020 2:00 AM до 3/5/2020 2:00 AM.
Мне нужно отделять эти данные изо дня в день в моей рабочей таблице. Итак, моя цель выглядит следующим образом:
ColumnB | Колонка C | ColumnD | Колонка E
1 мая-20 | 1 мая 20 | 2: 00 AM | 23:59
2 мая-20 | 2 мая 20 | 12:00 | 23:59
3 мая-20 | 3-мая-20 | 12:00 | 2: 00 AM
Мне удалось получить часть даты (Col B и Col C), но я получаю 12:00 - 23:59 для всех даты, указанные в моем коде, показаны ниже:
Dim a As Integer, i As Integer
a = DateDiff("d", DateBox1.Value, DateBox6.Value, vbSunday)
If a > 0 Then
For i = 0 To a
Lr = Sheets("Database").Cells(Rows.Count, "A").End(xlUp).Row
SummarySheet.Range("A" & Lr + 1).Formula = "=Now()" 'posting date
SummarySheet.Range("B" & Lr + 1).Value = Format(DateAdd("d", i, DateBox1.Value), "dd-Mmm-yy") 'date start
SummarySheet.Range("C" & Lr + 1).Value = Format(DateAdd("d", i, DateBox1.Value), "dd-Mmm-yy") 'date end
If SummarySheet.Range("B" & Lr + 1).Value = Format(DateBox1.Value, "dd-Mmm-yy") Then
SummarySheet.Range("D" & Lr + 1).Value = s1hh.Value & ":" & s1mm.Value & " " & s1ampm.Value 'start hour
SummarySheet.Range("E" & Lr + 1).Value = "11:59 PM" 'end hour
ElseIf SummarySheet.Range("B" & Lr + 1).Value = Format(DateBox6.Value, "dd-Mmm-yy") Then
SummarySheet.Range("D" & Lr + 1).Value = "12:00 AM" 'start hour
SummarySheet.Range("E" & Lr + 1).Value = e1hh.Value & ":" & e1mm.Value & " " & e1ampm.Value 'end hour
Else
SummarySheet.Range("D" & Lr + 1).Value = "12:00 AM"
SummarySheet.Range("E" & Lr + 1).Value = "11:59 PM"
End If
Next i
End If
Итак, что касается моего вопроса, могу ли я настроить выражение If-Elseif для этих целей? Спасибо!