Tech_Info/MyArchive2010. 10. 11. 17:21

아끼는 인턴중에 한명에게 떨어진 삽질!
아무리 생각해도 너무 삽질이라, 인터넷 검색을 했다.
역시 쉽구만!

단! 정렬은 ㄱ-ㄴ, A-B 순으로 된다.
엑셀시트 이름을 Number로 할경우 1 다음에 2가 아니라 10이 온다. 001,002,010 으로 해야지 정렬됨


http://www.i-fam.net/water/entry/엑셀시트의-정렬?TSSESSIONwwwifamnet=5559b42317b9b03a44bbccb673ee54ff

 

Public Sub SheetsSort(Wbk As Workbook, _ 

                      Optional IsAscent As Boolean = True) 

    Dim i As Integer, last As Integer, cmp As Integer 

    Dim isSorted As Boolean 

      

    cmp = IIf(IsAscent, 1, -1) 

    With Wbk.Sheets 

        For last = .Count To 2 Step -1 ' 버블소트 외곽루프 

            isSorted = True ' 버블소트 정렬시간 단축 옵션 

            For i = 1 To last - 1 ' 버블소트 내부루프 

                If StrComp(.Item(i).Name.Item(i + 1).Name) = cmp Then 

                    .Item(i + 1).Move Before:=.Item(i) 

                    isSorted = False 

                End If 

            Next i 

            If isSorted Then Exit For 

        Next last 

    End With 

End Sub 

 

 

 

Public Sub 워크시트를_오름차순으로_정렬() 

    SheetsSort ActiveWorkbook 

End Sub 

   

Public Sub 워크시트를_내림차순으로_정렬() 

    SheetsSort ActiveWorkbook, False 

End Sub

Posted by 알 수 없는 사용자