سایر شماره های ExcelTips راه هایی را ارائه کرده اند که می توانید کاربرگ ها را در ورک بوک خود بر اساس نام کاربرگ مرتب کنید. با این حال، اگر بخواهید کاربرگ ها را بر اساس مقداری در یک سلول معین از هر کاربرگ مرتب کنید، چه؟ به عنوان مثال، ممکن است یک سری کاربرگ داشته باشید که طرح کلی یکسانی دارند، و بخواهید کاربرگ ها بر اساس مقدار سلول H7 هر کاربرگ مرتب شوند.
تنها راه حل این مشکل ماکرو است. ماکرو باید از هر کاربرگ در ورک بوک عبور کند و سپس سلول کلید را در هر کاربرگ بعدی بررسی کند تا ببیند که چگونه با همان سلول در کاربرگ های دیگر مقایسه می شود. اگر مقدار سلول کمتر از کاربرگ فعلی باشد، کاربرگ حاوی مقدار کمتر می تواند جابجا شود.
Sub SortWksByCell()
Dim i As Integer
Dim j As Integer
For i = 1 To Worksheets.Count
For j = i To Worksheets.Count
If UCase(Worksheets(j).Range("H7")) < _
UCase(Worksheets(i).Range("H7")) Then
Worksheets(j).Move Before:=Worksheets(i)
End If
Next
Next
End Sub
به استفاده از متد Move توجه کنید که حرکت واقعی کاربرگ ها را انجام می دهد. نام کاربرگ ها مهم نیست، فقط موقعیت آنها بر اساس مقدار سلول H7 هر کاربرگ است.