0
09103042505

مرتب سازی شیتها به ترتیب حروف الفبا

در بعضی از موارد میخواهیم شیتهای اکسل به ترتیب دلخواه ما (برای مثال به ترتیب ماه، یا مرتب سازی شیتها به ترتیب حروف الفبا) مرتب شوند ولی متاسفانه ابزار مرتب سازی شیتها در اکسل موجود نیست و برای حل این مشکل باید از زبان برنامه نویسی VBA استفاده نمود.

کد vba جهت مرتب سازی شیتها به ترتیب حروف الفبا

بدین منظور باید از الگوریتم مرتب سازی استفاده کنیم، در این الگوریتم هر شیت با تمامی شیتهای قبل از خود مقایسه می‌شود، در هر مقایسه اسم شیت با اسم شیت قبلی مقایسه میگردد و در صورت نیاز، شیت جابه جا می شود. به منظور کد نویسی این الگوریتم  ابتدا وارد محیط VBE شده و بعد از باز کردن Module ، کدهای زیر را ثبت می‌نماییم.

SUB SOrting_Sheets()

۱- دستور Sub کد آغازین تمامی فرایندهایی است که در VBA کد میشود و به دنبال آن اسم مد نظر برای فرایند می‌آید.

For i = 1 To Worksheets.Count

For j=1 To i

۲-در این قسمت دو حلقه ساخته می شود که در حلقه اول تمامی شیتها شمارش میشود و در حلقه دوم برای هر شیت انتخاب شده، شیتهای قبلی آن مورد بررسی  قرار می‌گیرد.

If Ucase(Worksheets(i).Name)<Ucase(Worksheets(j).Name) Then Worksheets(i).Move Before:=Worksheets(j)

۳- در این قسمت بررسی میشود، اگر متن i امین شیت از متن J امین شیت کوچکتر بود (بر اساس حروف الفبا) شیت iام را قبل از شیت J ام میاورد.

Next j
Next i

۴- در دستورات فوق، قسمت پایانی حلقه ها مشخص می‌شود.

End Sub

۵-دستور End Sub هم دستور پایانی هر فرایند در VBA می‌باشد.

 

در قسمت زیر، کد به صورت یکجا آورده شده است.

Sub SOrting_Sheets()

    For i = 1 To Worksheets.Count

        For j = 1 To i

            If UCase(Worksheets(i).Name) < UCase(Worksheets(j).Name) Then Worksheets(i).Move Before:=Worksheets(j)

        Next j

    Next i

End Sub