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

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

این سخت تر از آن است که در ابتدا فکر کنیم. رویکرد استاندارد محافظت از ورک بوک است. (از ابزار Protect Workbook در تب Review روبان استفاده کنید.) به شرط اینکه از ساختار محافظت کنید، اکسل گزینه Move یا Copy Sheet را غیرفعال می کند.

شاید، به دلایلی، شما نمی خواهید از ورک بوک محافظت کنید. در این صورت می توانید راه حل های کلان ایجاد کنید که ممکن است کار شما را انجام دهد. به عنوان مثال، اجازه دهید بگوییم که شما یک ماکرو در ماژول کد برای خود کاربرگ دارید. شما می توانید آن ماکرو را به عنوان بخشی از عملکردش، برای بررسی وجود برخی داده های دیگر در ورک بوک یا برخی از متغیرهای سیستم بخواهید. (داده ها باید خارج از کاربرگ باشند، اما همچنان در ورک بوک هستند.) اگر وجود شناسایی شود، همه چیز همانطور که می خواهید عمل می کند.

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

یک رویکرد مبتنی بر کلان متفاوت، استفاده از دو رویداد برای کاربرگ است، به این ترتیب:

Private Sub Worksheet_Activate()
    ThisWorkbook.Protect "Hello"
End Sub
Private Sub Worksheet_Deactivate()
    ThisWorkbook.Unprotect "Hello"
End Sub

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

با این حال، به یاد داشته باشید که اگر هدف شما این است که کاربر را از کپی کردن داده ها و/یا فرمول های روی کاربرگ متوقف کنید، باید فراتر از کپی کردن یا جابجایی کاربرگ فکر کنید. کاربر همیشه می تواند محتویات سلول را از کاربرگ به کاربرگ دیگری کپی کند، که ممکن است کاری را که می خواهید انجام دهید بریک دهد.

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

157 نفر آنلاین
0 عضو و 157 مهمان در سایت حاضرند
بازدید امروز: 21169
بازدید دیروز: 17680
بازدید کل: 15145862
...