2017-01-09 48 views
-1

在「工作表1」中,單列中有20個單元格,這些單元格是用戶選擇值(材料列表中的材料)的下拉框。每種材料都有一個屬性,無論是高還是低。如何根據用戶定義的值對Excel中的範圍進行排序

我希望發生什麼:

  • 當細胞(其包含由 方式原材料的名稱)的範圍內被粘貼到「新表」,我希望他們能夠立即解決 成「高」和「低」類別。因此,所有「高」材料都是 位於該範圍的頂部和「底部」。

因此,例如在第1頁:

Material A 

Material B 

Material C 

Material D 

.. and so on 

而且這個名單是隨機的高/低的順序。

在 「新表」,我想有:

Material D 

Material A 

Material C 

Material B 

其中d和A是 「高」,C和B都是 「低」

任何幫助,將不勝感激。

+0

當你說高和低的你是什麼意思是什麼呢?引入的價值高於特定價值?或者材料有相關的高/低值?如果你可以對這個例子更具體,那麼知道你想要做什麼會更容易。 –

+0

是第二個選項。每種材料都有一個屬性,可以用高或低來描述 –

+0

,這似乎很清楚,他的意思是「高」和「低」值,儘管確切的值對於問題本身來說並不相關。不同的方式來做到這一點,一個快速和骯髒的將在這裏http://stackoverflow.com/questions/15017717/sort-a-range-before-pasting-excel-vba –

回答

0

只要數據在A1:B20範圍可以達到你想要用這個簡單的宏什麼...

Sub Macro4() 



Range("A1:B20").Copy 
Sheets.Add After:=ActiveSheet 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 

Range("B1:B20").Select 
Application.CutCopyMode = False 
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear 
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("B1"), _ 
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
With ActiveWorkbook.ActiveSheet.Sort 
    .SetRange Range("A1:B20") 
    .Header = xlNo 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 
End Sub 
相關問題