یک کتاب کار اکسل می تواند حاوی هر تعداد کاربرگ جداگانه باشد. همانطور که در بین کاربرگ های مختلف حرکت می کنید، اکسل سلولی را که در کدام کاربرگ انتخاب شده است، پیگیری می کند. وقتی به یک کاربرگ جدید جابجا میشوید، اکسل سلولی را که آخرین بار در آن کاربرگ فعال بوده را فعال میکند. بنابراین، اگر آخرین سلول F9 را در کاربرگ انتخاب کرده باشید، این سلولی است که هنگام نمایش مجدد کاربرگ انتخاب می شود، صرف نظر از اینکه چه چیزی در کاربرگ قبلی انتخاب شده است.
با این حال، برای برخی از کتابهای کار، ممکن است بخواهید اکسل سلول فعال در کاربرگ انتخاب شده را همانند سلول فعال در کاربرگ قبلی قرار دهد. هیچ تنظیمی برای انجام خودکار این کار در اکسل وجود ندارد، اما چند چیز وجود دارد که می توانید امتحان کنید. یک چیز این است که این مراحل را دنبال کنید:
- کلید Ctrl را در حالی که روی برگه صفحه کاری که می خواهید به آن کلیک کنید، نگه دارید . اکنون باید دو برگه کاربرگ انتخاب شود. نام پررنگ آن چیزی است که در واقع روی صفحه نمایش داده می شود.
- روی برگه صفحه کاری که می خواهید به آن بروید کلیک کنید. هر دو برگه همچنان باید انتخاب شوند، اما فقط یکی که روی آن کلیک کرده اید باید نامش پررنگ باشد.
- کلید Ctrl را در حین کلیک بر روی برگه کاربرگ که به تازگی رها کرده اید، نگه دارید .
این مراحل به این دلیل کار میکنند که کاربرگها را «گروهبندی» میکنید. وقتی این کار را انجام می دهید، اکسل سلول های انتخاب شده را برای همه کاربرگ های گروه یکسان می کند.
به خاطر سپردن استفاده از دنباله Ctrl -click-click- Ctrl در بهترین حالت ممکن است دست و پا گیر باشد. همچنین این یک دنباله است که می تواند مملو از خطر باشد، زیرا اگر فراموش کنید مرحله 3 را انجام دهید، ممکن است در نهایت تغییرات ناخواسته را در برگه های خود ایجاد کنید. (زمانی که با کاربرگ های گروه بندی شده کار می کنید، هر تغییری که در یک برگه ایجاد می کنید به طور مشابه در تمام برگه های گروه تغییر می کند.)
این سه مرحله را نمیتوان با ماکروها خودکار کرد، اما میتوانید با یک ماکرو رویکرد متفاوتی برای انجام همان کار در پیش بگیرید. اولین کاری که باید انجام دهید این است که یک متغیر عمومی را در هر جایی از ماژول کتاب کار اعلام کنید، همانطور که در اینجا نشان داده شده است:
Public sAddress As String
این متغیر، sAddress، برای ذخیره آدرس فعلی سلول فعال استفاده خواهد شد. در ماژول ThisWorkbook کتاب کار، این دو ماکرو را اضافه کنید:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
sAddress = ActiveCell.Address
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
On Error Resume Next
If sAddress > "" Then Sh.Range(sAddress).Select
End Sub
هر زمان که سلول انتخاب شده تغییر کند، اولین ماکرو به طور خودکار توسط اکسل اجرا می شود. تنها کاری که انجام می دهد این است که آدرس هر سلول فعال را بازیابی می کند و سپس آن آدرس را در متغیر sAddress ذخیره می کند.
ماکرو دوم هر زمان که یک کتاب کار فعال شود به طور خودکار اجرا می شود. بررسی می کند که آیا چیزی در sAddress ذخیره شده است یا خیر. اگر وجود داشته باشد، آدرس سلولی که در آنجا ذخیره شده است را انتخاب می کند. در صورتی که برگهای را انتخاب کنید که از سلولها استفاده نمیکند، مانند برگه نمودار، کد خطا ضروری است.
اگر بخواهید این تغییر ناوبری را فقط در یک یا دو کتاب کار انجام دهید، این رویکرد کلان عالی کار می کند. اگر ترجیح میدهید تغییر را «گستردگی سیستم» (به اصطلاح) ایجاد کنید، باید در رویکرد خود به کلان کمی پیچیدهتر باشید. در این مورد، باید کد خود را در کتاب کار Personal.xls قرار دهید تا هر بار که اکسل را راه اندازی می کنید، بارگذاری شود. به طور خاص، کد زیر را در یک ماژول کلاس جدید از Workbook Personal.xlsm قرار دهید. این ماژول کلاس باید چیزی توصیفی نامیده شود، مانند ClassXLApp:
Public WithEvents gobjXLApp As Excel.Application
Private mstrAddress As String
Private Sub gobjXLApp_WorkbookActivate(ByVal Wb As Excel.Workbook)
On Error Resume Next
If mstrAddress > "" Then ActiveSheet.Range(mstrAddress).Select
End Sub
Private Sub gobjXLApp_SheetActivate(ByVal Sh As Object)
On Error Resume Next
If mstrAddress > "" Then Sh.Range(mstrAddress).Select
End Sub
Private Sub gobjXLApp_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
mstrAddress = Selection.Address
End Sub
در مرحله بعد، ماژول ThisWorkbook را در کتاب شخصی خود باز کنید و کد زیر را در آن کپی کنید:
Private mobjXLApp As New ClassXLApp
Private Sub Workbook_Open()
Set mobjXLApp.gobjXLApp = Excel.Application
End Sub
هنگامی که کتاب کار شخصی خود را ذخیره کردید و اکسل را مجددا راه اندازی کردید، محدوده اولین کتاب کاری که باز می شود در کاربرگ بعدی انتخاب شده انتخاب می شود.