这是我开发的一小部分数据分析程序,用于读取多行并决定结构。宏的一部分依赖于每行数据的时间签名。我编写了这段代码来对时间进行排序,使其从最早到最晚运行,因为默认是最新的(从上到下)。它已经工作正常,直到一些数据有时间签名混合一点点(即19:01:16,19:00:00,18:52:07 ....... 18:48:05)它排序大约有四分之三的数据是正确的,然后它会再次随机重启(意味着最早的数据会再次上升。有什么想法吗?
以下是代码:
'Formats Time data to avoid consolidated trade structures
ThisWorkbook.Sheets("Trade_Data_Insert").Range("b3:b" & lastRow).Select
ActiveWorkbook.Worksheets("Trade_Data_Insert").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Trade_Data_Insert").Sort.SortFields.Add Key:=Range("B3"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Trade_Data_Insert").Sort
.SetRange Range("A3:Q278")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.NumberFormat = "[$-409]h:mm:ss AM/PM;@"
答案 0 :(得分:0)
遗憾的是,问题非常愚蠢。数据已经增长到我预期的大小之外,因此排序范围不幸地捕获了最后几行。为愚蠢的问题道歉。
'Formats Time data to avoid consolidated trade structures
ThisWorkbook.Sheets("Trade_Data_Insert").Range("b3:b" & lastRow).Select
ActiveWorkbook.Worksheets("Trade_Data_Insert").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Trade_Data_Insert").Sort.SortFields.Add Key:=Range("B3"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Trade_Data_Insert").Sort
.SetRange Range("A3:Q5000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.NumberFormat = "[$-409]h:mm:ss AM/PM;@"