基于数字和点(.)组合的Excel VBA宏排序
我正在寻找在excel中根据以下条件使用宏对工作表进行排序。我在下面给出一个例子。你能告诉我相应的排序算法吗 排序应根据编号顺序以及一个或多个“.”进行 例如,我有以下一组未排序的值:基于数字和点(.)组合的Excel VBA宏排序,excel,sorting,vba,Excel,Sorting,Vba,我正在寻找在excel中根据以下条件使用宏对工作表进行排序。我在下面给出一个例子。你能告诉我相应的排序算法吗 排序应根据编号顺序以及一个或多个“.”进行 例如,我有以下一组未排序的值: 然后,我需要一个宏,该宏应根据ID对工作表进行排序,该ID应根据数字以及1或多个“.”进行排序。因此,如果有1,1.1.1,1.1,1.2,排序顺序应该是1,1.1,1.1.1,1.2 因此,在排序的宏运行之后,上面未排序的工作表应该如下所示 这对我来说是个窍门: Option Explicit Sub So
然后,我需要一个宏,该宏应根据ID对工作表进行排序,该ID应根据数字以及1或多个“.”进行排序。因此,如果有1,1.1.1,1.1,1.2,排序顺序应该是1,1.1,1.1.1,1.2 因此,在排序的宏运行之后,上面未排序的工作表应该如下所示
这对我来说是个窍门:
Option Explicit
Sub SortThis()
Dim lonLastRow As Long
Dim rng As Range
With ActiveSheet
lonLastRow = .Cells(Rows.Count, 1).End(xlUp).Row
Set rng = .Range(.Cells(2, 2), .Cells(lonLastRow, 2))
rng.Sort Key1:=.Cells(2, 2)
End With
End Sub
请确保将“Activesheet”替换为直接引用您需要的工作表(通过编号或bij名称)。我找到了解决问题的方法。我已经拆分了ID列并基于。使用公式和定界符进行排序,然后创建一个宏,根据排序和ID对工作表进行排序
为什么不让VBA代码让Excel按升序排序呢?只有升序是行不通的。因为它需要根据编号顺序以及“.”进行排序。我看到您已经更新了您的要求,以获得不同的数据。在这种情况下,您需要编写一些VBA。发布您到目前为止拥有的内容,我们可能会帮助您完成。这不起作用。请查看最新的要求,它确实有效。。对于您的更新要求,您只需根据需要调整范围“rng”和键1。。。
Public Sub SortWorksheet()
ThisWorkbook.Worksheets(WS_SiteRawData).Activate
Range("A3:IR1000").Select
Selection.sort Key1:=Range("N3"), Order1:=xlAscending, Key2:=Range("E3") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
End Sub