2014-07-18 51 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