2017-01-09 1 views
-1

"시트 1"에서 사용자가 값 (재료 목록의 재료)을 선택하는 드롭 다운 상자 인 단일 열에 20 개의 셀이 있습니다. 각 자료는 높음 또는 낮음 속성을가집니다. 즉시로 를 분류사용자 정의 값을 기준으로 범위를 정렬하는 방법

합니다 ( 방법에 의해 원료의 이름을 포함) 셀 범위가 "새 시트"에 붙여
  • , 나는 그들이 원하는 : 나는 일이 원하는 것은

    "높음"및 "낮음"범주. 따라서 모든 "높음"자료는 상단에 이고 범위의 하단에 있습니다.

그래서 시트 (1) 예를 들면 :

Material A 

Material B 

Material C 

Material D 

.. and so on 

이 목록은 임의의 고/저 순서입니다. "새 시트"에서

, 내가 갖고 싶어 : D와 A는 "높음"이고 C와 B가 어떤 도움을 주시면 감사하겠습니다

"낮은"입니다

Material D 

Material A 

Material C 

Material 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 
관련 문제