我有一个 Excel 数据表,大约 950000 行,7 列。我想根据 V5 列数据对其进行划分。 V5 保存以秒为单位的时间数据到一小时,所以我需要 将数据分成几张纸,每张纸包含与一分钟相关的所有值,依此类推,直到完成拆分
如果有任何关于使用 micro VBA 的帮助,那就太好了。
这就是我在 VBA 中可以做的
Sub SPLIT()
Dim ws1, ws2 As Worksheet
Dim row2 As Integer
Dim rw As Range
Dim dv, fv As Variant
Set ws1 = Sheets("sheet1")
Set ws2 = Sheets.Add
row2 = 1
For Each rw In ws1.Rows
If rw.Cells(1, 5).Value2 = 00:00:59 Then " and so on until i divide each minute data rows alone"
Exit For
End If
最佳答案
所以我为您准备了一些可以帮助您入门的东西。您可能需要调整代码以适应您的要求的确切时间范围(这将是一个很好的学习机会!)。请注意,您可以采取将这些界限设置为固定或可变的方法(即:分钟/秒/小时的增量,或我现在拥有的固定界限)
要进行此设置,您的工作文件中需要三张纸,分别命名为 (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
关于java - 根据特定单元格值划分 Excel 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52266611/