با سلام خدمت کاربران عزیز آی تی سواد
زمانی که از یک فایل اکسل استفاده میکنیم ، می توانیم شیت ها را بر اساس نام شیت ، اعداد و یا رنگ زبانه شیت مرتب میکنیم ، اما آیا تا به حال سعی کردهاید آنها را بر اساس یک مقدار سلول خاص مرتب کنید ؟
فرض کنید که یک فایل دارای تعدادی شیت داشته باشید ، در هر شیت، سلولA۱ دارای مقدار خاصی است ، و حالا شما باید تمام شیت ها را برپایه مقدار A۱ در هر شیت مرتب کنید . در این مقاله ، راهحل اینکار را یاد خواهید گرفت.
مرتب سازی شیت ها در اکسل بر اساس مقدار سلول با کد VBA
۱. کلیدهای Alt + F11 را فشار دهید تا پنجره Microsoft Visual Basic for Applications باز شود .
۲. در پنجره Microsoft Visual Basic for Applications بر رویInsert > Module کلیک کنید و سپس از زیر کد VBA را کپی و در درون پنجره ماژول قراردهید .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub SortWksByCell() 'Update 20141127 Dim WorkRng As Range Dim WorkAddress As String On Error Resume Next xTitleId = "itsadad.ir" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range (Single)", xTitleId, WorkRng.Address, Type:=8) WorkAddress = WorkRng.Address Application.ScreenUpdating = False For i = 1 To Application.Worksheets.Count For j = i To Application.Worksheets.Count If VBA.UCase(Application.Worksheets(j).Range(WorkAddress)) < VBA.UCase(Application.Worksheets(i).Range(WorkAddress)) Then Application.Worksheets(j).Move Before:=Application.Worksheets(i) End If Next Next Application.ScreenUpdating = True End Sub |
۳. بعد از قرار دادن متن ، سپس کلید F۵ را فشار دهید تا این کد را اجرا کنید، و یک پنجره ظاهر می شود که از شما می خواهد یک سلول را انتخاب کنید که تا شیت ها براساس آن مرتب شود.
۴. اکنون ، شما میتوانید ببینید که تمام شیت ها بر اساس مقدار A1 هر شیت بصورت افزایشی مرتب شده است .
نکات :
اگر هم تعداد و هم رشته متنی در سلولهای انتخابشده وجود داشته باشد , صفحات حاوی اعداد قبل از شیت های متنی مرتب میشوند .
اگر در یکی از شیت ها سلول a1 خالی باشد , کاربرگ مرتبط ابتدای همه صفحات دستهبندی میشود .
ترجمه شده از سایت www.extendoffice.com