Vba 排序时间数据时出错
这是我开发的数据分析程序的一小部分,用于读取多行数据并确定结构。宏的一部分依赖于每行数据的时间签名。我编写这段代码是为了对时间进行排序,以便它从最早到最晚运行,因为默认值是从最晚到最早(从上到下)。它一直工作得很好,直到一些数据的时间签名混合了一点(即19:01:16,19:00:00,18:52:07………18:48:05),它正确地排序了大约四分之三的数据,然后再次随机重新启动(意味着最早的数据即将再次上升。有什么想法吗 代码如下:Vba 排序时间数据时出错,vba,excel,sorting,Vba,Excel,Sorting,这是我开发的数据分析程序的一小部分,用于读取多行数据并确定结构。宏的一部分依赖于每行数据的时间签名。我编写这段代码是为了对时间进行排序,以便它从最早到最晚运行,因为默认值是从最晚到最早(从上到下)。它一直工作得很好,直到一些数据的时间签名混合了一点(即19:01:16,19:00:00,18:52:07………18:48:05),它正确地排序了大约四分之三的数据,然后再次随机重新启动(意味着最早的数据即将再次上升。有什么想法吗 代码如下: 'Formats Time data to avoid c
'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;@"
不幸的是,这个问题非常愚蠢。数据已经超出了我的预期大小,因此排序范围无法捕获最后几行。很遗憾,对于一个愚蠢的问题,我深表歉意
'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;@"
您显示的时间字符串
2PM
,202PM
将不会被Excel解释为时间,因此它们将被排序为字符串。如果您希望信息正确排序,必须首先使数据一致。可能您的数据是日期-时间序列号和文本的混合体,格式为时间,看起来像time@RonRosenfeld我应该说得更具体一点,因为我打字很快。它们最初是以19:01:16等格式显示的。我将编辑帖子。@chrisneilsen它似乎是时间。导入原始数据时,它列为19:07:16,然后如果我查看公式栏,它显示7:01:16 pma在Excel中定义区域时总是动态的-尤其是如果您已经在VBA中编码了。