Итак, я собрал кое-что для вас, чтобы вы начали.Скорее всего, вам придется скорректировать код в соответствии с точными временными рамками, которые соответствуют вашим требованиям (что будет хорошей возможностью для обучения!).Обратите внимание, что вы можете использовать подход для установки этих границ как фиксированных или переменных (то есть: приращения минут / секунд / часов или фиксированных границ, которые у меня есть сейчас)
Чтобы установить это, вам потребуется трилисты в вашей рабочей бумаге с именами (1) часов, (2) минут и (3) секунд.
Когда код настроен, строки сортируются и помещаются в границы в зависимости от того, меньше ли это одна минута, илиодин час или более одного часа.
Сделайте попытку приспособить код к вашим точным требованиям, и если у вас есть какие-либо вопросы, не стесняйтесь, дайте мне знать!
Function Last_Row(Sheet_Name As String)
Last_Row = Sheets(Sheet_Name).Range("A" & Sheets(Sheet_Name).Rows.Count).End(xlUp).Row
End Function
Sub AllocateSheet()
Dim Cell As Variant
Dim Cell_Range As Range
Set Cell_Range = Range("E2:E990000")
Seperator_Second = TimeValue("00:00:01")
Seperator_Minute = TimeValue("00:01:00")
Seperator_Hour = TimeValue("01:00:00")
For Each Cell In Cell_Range
If Cell.Value >= Seperator_Hour Then
Rows(Cell.Row).Copy Destination:=Sheets("Hours").Rows(Last_Row("Hours") + 1)
ElseIf Cell.Value <= Seperator_Hour And Cell.Value >= Seperator_Minute Then
Rows(Cell.Row).Copy Destination:=Sheets("Minutes").Rows(Last_Row("Minutes") + 1)
ElseIf Cell.Value <= Seperator_Minute And Cell.Value >= Seperator_Second Then
Rows(Cell.Row).Copy Destination:=Sheets("Seconds").Rows(Last_Row("Seconds") + 1)
End If
Next Cell
End Sub