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

تیم به درستی اشاره می‌کند که کاربر می‌تواند روی یک برگه کاربرگ راست کلیک کند، سپس View Code را انتخاب کند تا یک صفحه کد VBA برای کاربرگ باز شود. او کدی نوشته است که به طور خودکار سلول ها، ستون ها و ردیف ها را دستکاری می کند. این کد باید در هر کاربرگ کتاب کار موجود باشد، حتی اگر کاربر کاربرگ‌های جدیدی اضافه کند. تیم تعجب می کند که آیا راهی وجود دارد، با استفاده از VBA، کد یک کاربرگ به طور خودکار در یک کاربرگ جدید در کتاب کار کپی شود.

چند راه برای حل این مشکل وجود دارد. یکی از راه‌ها - و شاید ساده‌ترین راه - این است که ماکروها را از صفحه کد کاربرگ‌ها حذف کنید و به ماژول ThisWorkbook منتقل کنید. برگه کد کاربرگ همان چیزی است که وقتی روی برگه کاربرگ راست کلیک می کنید می بینید. کد موجود در آن برگه برای رسیدگی به رویدادهایی است که در کاربرگ و فقط در آن کاربرگ رخ می دهد. اگر کد را به ماژول ThisWorkbook منتقل کنید، رویدادها همچنان قابل مدیریت هستند، اما این رویدادها برای همه کاربرگ‌های کتاب کار اعمال می‌شوند.

برای مثال، وقتی روی یک برگه کاربرگ راست کلیک می‌کنید و به پنجره کد نگاه می‌کنید، ابتدا در رویداد Worksheet_SelectionChange کار می‌کنید. اگر می‌خواهید این کد را به ماژول ThisWorkbook منتقل کنید، می‌توانید آن را در رویداد Workbook_SheetSelectionChange قرار دهید.

اگر چنین "تغییر سطح" کد شما به دلایلی کار نمی کند، روش دیگر ایجاد یک کاربرگ الگو در کتاب کار است. نامی مانند «MyMaster» به آن بدهید و مطمئن شوید که شامل تمام کدهایی است که می‌خواهید به کاربرگ‌های تازه ایجاد شده خود اضافه کنید. شما حتی می توانید این کاربرگ را در صورت تمایل مخفی کنید تا حواس کاربران را پرت نکند. سپس، ماکرو زیر را در ماژول ThisWorkbook قرار دهید:

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Dim tmpName As String

    tmpName = Sh.Name
    Sheets("MyMaster").Copy Before:=Sheets(Sh.Name)
    Application.DisplayAlerts = False
    Sheets(Sh.Name).Delete
    Application.DisplayAlerts = True
    Sheets("MyMaster (2)").Name = tmpName
End Sub

این کد هر بار که یک کاربرگ جدید به کتاب کار اضافه می شود فعال می شود. به نام کاربرگ تازه اضافه شده (که چیزی شبیه "Sheet4" خواهد بود) نگاه می کند و آن نام را در یک متغیر موقت ذخیره می کند. سپس کد کاربرگ MyMaster را در کتاب کار کپی می کند (که ماکروهای موجود در کاربرگ را نیز کپی می کند)، کاربرگ را که در ابتدا ایجاد شده بود حذف می کند و سپس کپی MyMaster جدید را به همان نام کاربرگ اصلی تغییر می دهد.

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 31 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 39 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 33 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 49 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 45 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

388 نفر آنلاین
0 عضو و 388 مهمان در سایت حاضرند
بازدید امروز: 14714
بازدید دیروز: 25180
بازدید کل: 20352062
...