从左到右sorting(基于列)VBA

我在互联网上search,但显然没有人有同样的问题。 我在Excel,VBA工作。 我试图根据特定行中显示的值对列进行sorting。 这是一个例子:

ABCDE 1 12QA03 12QA01 12QA02 2 Step 1 32 23 82 3 Step 2 43 92 1 4 Step 3 12 12 84 5 Step 4 65 89 51 6 7 24QA93 24QA91 24QA95 24QA98 8 Step 1 94 77 83 28 9 Step 2 92 30 5 19 10 Step 3 19 82 16 49 11 Step 4 11 41 7 17 

所以数据由两个表格组成,用空行分隔。 目标是得到这个:

  ABCDE 1 12QA01 12QA02 12QA03 2 Step 1 23 82 32 3 Step 2 92 1 43 4 Step 3 12 84 12 5 Step 4 89 51 65 6 7 24QA91 24QA93 24QA95 24QA98 8 Step 1 77 94 83 28 9 Step 2 30 92 5 19 10 Step 3 82 19 16 49 11 Step 4 41 11 7 17 

我已经写了一个macros,可以正常工作的顶部表,但给第二个错误:

 Sub SortData() 'Sort top table With Range("B1:D5") .Rows.Sort Key1:=.Rows.Range("B1"), Order1:=xlAscending, _ Orientation:=xlLeftToRight End With 'Sort top table With Range("B7:E11") .Rows.Sort Key1:=.Rows.Range("B7"), Order1:=xlAscending, _ Orientation:=xlLeftToRight End With End Sub 

出了什么问题? 或者可能有更好的方法? 在此先感谢您的帮助!

也许更简单一点:

 Sub SortLTable() Range("B7:E11").Sort Key1:=Range("B7:E7"), Order1:=xlAscending, Orientation:=xlLeftToRight End Sub 

暂时放入A1和A7,比如“A”,这样就可以得到完整的表格(带有填充的标题栏)。 sorting后可以删除这些值。

WithRows使用混淆了这个问题:

 Sub SortData() 'Sort top table Range("A1,A7").Value = "A" Range("B1:D5").Sort Key1:=Range("B1"), Order1:=xlAscending, _ Orientation:=xlLeftToRight 'Sort top table Range("B7:E11").Sort Key1:=Range("B7"), Order1:=xlAscending, _ Orientation:=xlLeftToRight Range("A1,A7").Value = "" End Sub 

以下代码工作。

 Sub SortLTable() Range("B1:D5").Sort Key1:=Range("B1:D1"), Order1:=xlAscending, Orientation:=xlLeftToRight Range("B7:E11").Sort Key1:=Range("B7:E7"), Order1:=xlAscending, Orientation:=xlLeftToRight End Sub