2014-07-18 52 views
-1

我目前陷入这个问题。选择并订购一个VBA表

我有一个数据矩阵像这样的,但有很多更多的数据:

enter image description here

我想通过点击排序按钮等创建一个新的工作表,使这个表进行排序:

SELECT the two smallest values 
FROM my table 
ORDER BY Blue Column Name, Data_Value 

然后resoult是: enter image description here

谢谢您˚F或你的帮助。

编辑: 我曾尝试每列订购这样与排序功能,但我不是结果,我预计在所有:

' 
' MySorting Macro 
' 

' 
    Range("A1:E4").Select 
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("C1:C4"), _ 
     SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("D1:D4"), _ 
     SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("E1:E4"), _ 
     SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
    With ActiveWorkbook.Worksheets("Feuil1").Sort 
     .SetRange Range("A1:E4") 
     .Header = xlGuess 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 
     .Apply 
    End With 
End Sub 
+0

嗨,你能告诉我们一些代码吗? – Noldor130884

+0

嗨,这里是我的代码,但它效率不高:( – Vincent

回答

0

恐怕你的排序过滤器将不会足够。

如果你只想使用排序功能,你需要有一个二维表:

Paris France McDonald 100 
Paris France Wendy 120 
Paris France BK  10 
etc. 

然后排序将是容易的。

如果你想在VBA中像上面那样做,你需要复制你当前的表并首先将其设置为二维表。 (就像之前的例子)。当你完成它时,你可以使用你的排序。

但是,对于像这样的任务,这是很多VBA。

+0

谢谢你的帮助。 的确,我认为我将能够轻松地使用excel进行排序和订购 您提到我将不得不复制我当前的表格,并将其制作为二维表格,但是,由于我有大量数据,因此我无法手动执行此操作。 – Vincent