방법: 워크시트에서 프로그래밍 방식으로 데이터 정렬
런타임에 워크시트 범위와 목록에 포함된 데이터를 정렬할 수 있습니다. 다음 코드에서는 여러 열로 구성된 Fruits라는 범위를 첫 번째 열의 데이터를 기준으로 정렬한 다음 두 번째 열의 데이터를 기준으로 정렬합니다.
적용 대상: 이 항목의 정보는 Excel 2007 및 Excel 2010의 문서 수준 프로젝트 및 응용 프로그램 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.
문서 수준 사용자 지정의 데이터 정렬
NamedRange 컨트롤의 데이터를 정렬하려면
NamedRange 컨트롤의 Sort 메서드를 호출합니다. 다음 예제를 실행하려면 Fruits라는 NamedRange 컨트롤이 워크시트에 있어야 합니다. 이 코드는 ThisWorkbook 클래스가 아닌 시트 클래스에 배치해야 합니다.
Me.Fruits.Sort( _ Key1:=Me.Fruits.Columns(1), Order1:=Excel.XlSortOrder.xlAscending, _ Key2:=Me.Fruits.Columns(2), Order2:=Excel.XlSortOrder.xlAscending, _ Orientation:=Excel.XlSortOrientation.xlSortColumns, _ Header:=Excel.XlYesNoGuess.xlNo, _ SortMethod:=Excel.XlSortMethod.xlPinYin, _ DataOption1:=Excel.XlSortDataOption.xlSortNormal, _ DataOption2:=Excel.XlSortDataOption.xlSortNormal, _ DataOption3:=Excel.XlSortDataOption.xlSortNormal)
this.Fruits.Sort( this.Fruits.Columns[1, missing], Excel.XlSortOrder.xlAscending, this.Fruits.Columns[2, missing], missing, Excel.XlSortOrder.xlAscending, missing, Excel.XlSortOrder.xlAscending, Excel.XlYesNoGuess.xlNo, missing, missing, Excel.XlSortOrientation.xlSortColumns, Excel.XlSortMethod.xlPinYin, Excel.XlSortDataOption.xlSortNormal, Excel.XlSortDataOption.xlSortNormal, Excel.XlSortDataOption.xlSortNormal);
ListObject 컨트롤의 데이터를 정렬하는 다음과 같은 코드를 Sheet1.vb 또는 Sheet1.cs에 추가합니다. 이 코드에서는 이름이 Sheet1인 워크시트에 fruitList라는 Microsoft.Office.Tools.Excel.ListObject 컨트롤이 있는 것으로 가정합니다.
ListObject 컨트롤의 데이터를 정렬하려면
ListObject 호스트 컨트롤의 Range 속성에 대한 Sort 메서드를 호출합니다.
Me.fruitList.Range.Sort( _ Key1:=Me.fruitList.ListColumns(1).Range, Order1:=Excel.XlSortOrder.xlAscending, _ Key2:=Me.fruitList.ListColumns(2).Range, Order2:=Excel.XlSortOrder.xlAscending, _ Orientation:=Excel.XlSortOrientation.xlSortColumns, _ Header:=Excel.XlYesNoGuess.xlYes)
this.fruitList.Range.Sort( this.fruitList.ListColumns[1].Range, Excel.XlSortOrder.xlAscending, this.fruitList.ListColumns[2].Range, missing, Excel.XlSortOrder.xlAscending, missing, Excel.XlSortOrder.xlAscending, Excel.XlYesNoGuess.xlYes, missing, missing, Excel.XlSortOrientation.xlSortColumns, Excel.XlSortMethod.xlPinYin, Excel.XlSortDataOption.xlSortNormal, Excel.XlSortDataOption.xlSortNormal, Excel.XlSortDataOption.xlSortNormal);
응용 프로그램 수준 추가 기능의 데이터 정렬
네이티브 범위의 데이터를 정렬하려면
네이티브 Excel Microsoft.Office.Interop.Excel.Range 컨트롤의 Sort 메서드를 호출합니다. 다음 예제를 실행하려면 Fruits라는 네이티브 Excel 컨트롤이 워크시트에 있어야 합니다.
Dim Fruits As Excel.Range = Me.Application.Range("A1", "B2") Fruits.Sort( _ Key1:=Fruits.Columns(1), Order1:=Excel.XlSortOrder.xlAscending, _ Key2:=Fruits.Columns(2), Order2:=Excel.XlSortOrder.xlAscending, _ Orientation:=Excel.XlSortOrientation.xlSortColumns, _ Header:=Excel.XlYesNoGuess.xlNo, _ SortMethod:=Excel.XlSortMethod.xlPinYin, _ DataOption1:=Excel.XlSortDataOption.xlSortNormal, _ DataOption2:=Excel.XlSortDataOption.xlSortNormal, _ DataOption3:=Excel.XlSortDataOption.xlSortNormal)
Excel.Range Fruits = Application.get_Range("A1", "B3"); Fruits.Sort( Fruits.Columns[1, missing], Excel.XlSortOrder.xlAscending, Fruits.Columns[2, missing], missing, Excel.XlSortOrder.xlAscending, missing, Excel.XlSortOrder.xlAscending, Excel.XlYesNoGuess.xlNo, missing, missing, Excel.XlSortOrientation.xlSortColumns, Excel.XlSortMethod.xlPinYin, Excel.XlSortDataOption.xlSortNormal, Excel.XlSortDataOption.xlSortNormal, Excel.XlSortDataOption.xlSortNormal);
ListObject 컨트롤의 데이터를 정렬하려면
네이티브 Excel Microsoft.Office.Interop.Excel.ListObject 컨트롤의 Range 속성에 대한 Sort 메서드를 호출합니다. 다음 예제에서는 활성 워크시트에 fruitList라는 네이티브 Excel Microsoft.Office.Interop.Excel.ListObject 컨트롤이 있다고 가정합니다.
Dim fruitList As Excel.ListObject = CType(Application.ActiveSheet, _ Excel.Worksheet).ListObjects.AddEx(Excel.XlListObjectSourceType.xlSrcRange, _ Application.Range("A1", "B2")) fruitList.Range.Sort( _ Key1:=fruitList.ListColumns(1).Range, Order1:=Excel.XlSortOrder.xlAscending, _ Key2:=fruitList.ListColumns(2).Range, Order2:=Excel.XlSortOrder.xlAscending, _ Orientation:=Excel.XlSortOrientation.xlSortColumns, _ Header:=Excel.XlYesNoGuess.xlYes)
Excel.ListObject fruitList = ((Excel.Worksheet)Application.ActiveSheet). ListObjects.Add(Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcRange, Application.get_Range("A1", "B3"), missing, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlNo, missing); fruitList.Range.Sort( fruitList.ListColumns[1].Range, Excel.XlSortOrder.xlAscending, fruitList.ListColumns[2].Range, missing, Excel.XlSortOrder.xlAscending, missing, Excel.XlSortOrder.xlAscending, Excel.XlYesNoGuess.xlYes, missing, missing, Excel.XlSortOrientation.xlSortColumns, Excel.XlSortMethod.xlPinYin, Excel.XlSortDataOption.xlSortNormal, Excel.XlSortDataOption.xlSortNormal, Excel.XlSortDataOption.xlSortNormal);