ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
34 visibility
موضوع: آفیس توسط:

احتمالاً می‌دانید که می‌توانید با دوبار کلیک کردن روی برگه و ارائه یک نام جدید، نام یک برگه کاربرگ را تغییر دهید. با این حال، اگر بخواهید آن را به صورت پویا انجام دهید، چه؟ اگر بخواهید مقدار سلول A1 به طور خودکار به عنوان نام برگه ظاهر شود، چه؟

متأسفانه، اکسل یک تابع ذاتی برای رسیدگی به این نوع کارها ارائه نمی دهد. ایجاد چنین عملکردی با استفاده از یک ماکرو کار نسبتاً ساده ای است که این کار را برای شما انجام می دهد. به عنوان مثال، ماکرو زیر نام برگه را به محتوای A1 تغییر می دهد:

Sub myTabName()
    ActiveSheet.Name = ActiveSheet.Range("A1")
End Sub

چندین مورد مهم در مورد این ماکرو وجود دارد. اول از همه، بررسی خطا وجود ندارد. این بدان معنی است که اگر A1 حاوی مقداری باشد که برای نام یک برگه غیرقانونی است، ماکرو یک خطا ایجاد می کند. دوم اینکه ماکرو باید به صورت دستی اجرا شود.

اگر ماکرو قوی‌تری می‌خواهید که خطاها را بررسی می‌کند و به طور خودکار اجرا می‌شود، چه؟ نتیجه کمی طولانی تر است، اما هنوز خیلی پیچیده نیست:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Set Target = Range("A1")
    If Target = "" Then Exit Sub
    On Error GoTo Badname
    ActiveSheet.Name = Left(Target, 31)
    Exit Sub
Badname:
    MsgBox "Please revise the entry in A1." & Chr(13) _
    & "It appears to contain one or more " & Chr(13) _
    & "illegal characters." & Chr(13)
    Range("A1").Activate
End Sub

برای راه اندازی این ماکرو مراحل زیر را دنبال کنید:

  1. یک کتاب کار جدید که فقط یک کاربرگ در آن دارد باز کنید.
  2. روی برگه کاربرگ راست کلیک کرده و View Code را از منوی Context انتخاب کنید. اکسل ویرایشگر VBA را نمایش می دهد.
  3. ماکرو فوق را در پنجره کد قرار دهید (یا تایپ کنید).
  4. ویرایشگر VBA را ببندید.
  5. پوشه XLStart را در سیستم خود پیدا کنید. (از قابلیت های جستجوی ویندوز برای مکان یابی پوشه استفاده کنید.)
  6. کتاب کار را با استفاده از نام Book.xltm در فهرست XLStart به عنوان یک الگوی ماکرو فعال اکسل ذخیره کنید. این باعث می شود که الگو برای هر کتاب کاری جدیدی که ایجاد می کنید به الگوی شما تبدیل شود.
  7. دوباره کتاب کار را به عنوان یک الگوی ماکرو فعال در همان فهرست، این بار با استفاده از نام Sheet.xltm ذخیره کنید. این باعث می شود که الگو به الگوی هر کاربرگ جدیدی که در کتاب کار وارد می کنید تبدیل شود.
  8. اکسل را ببندید و مجددا راه اندازی کنید.

اکنون، هر زمان که مقدار را در سلول A1 تغییر دهید، برگه کاربرگ نیز به روز می شود.

برای استفاده از این نکته یک هشدار وجود دارد: اگر مقدار در سلول A1 یک تاریخ است و می‌خواهید برگه کاربرگ حاوی آن تاریخ باشد، ممکن است آنچه را که انتظار دارید دریافت نکنید. دلیل ساده است: اکسل تاریخ ها را به صورت داخلی به عنوان شماره سریال ذخیره می کند، و این چیزی است که به برگه کاربرگ اختصاص داده می شود، نه یک تاریخ فرمت شده. اگر با تاریخ ها کار می کنید، باید آنچه را که واقعاً به نام برگه اختصاص داده شده است تغییر دهید:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
    Set Target = Range("A1")
    If Target = "" Then Exit Sub
    On Error GoTo Badname
    ActiveSheet.Name = Format(Target, "mmm-dd-yy")
    Exit Sub
Badname:
    MsgBox "Please revise the entry in A1." & Chr(13) _
    & "It appears to contain one or more " & Chr(13) _
    & "illegal characters." & Chr(13)
    Range("A1").Activate
End Sub

توجه داشته باشید که تنها تغییر در اینجا چیزی است که به ویژگی Name کاربرگ اختصاص داده شده است - این یک تاریخ قالب بندی شده است. در صورت تمایل می توانید قالب تاریخ استفاده شده در ماکرو را تغییر دهید. با این حال، نباید قالبی را انتخاب کنید که از اسلش استفاده می کند، زیرا در نام کاربرگ غیرقانونی است.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

102 نفر آنلاین
1 عضو و 101 مهمان در سایت حاضرند
اعضای حاضر در سایت
بازدید امروز: 9002
بازدید دیروز: 13001
بازدید کل: 19463296
...