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

دیوید در یک کاربرگ باید محاسبه خودکار را هنگام باز شدن کاربرگ خاموش کند. سپس، او باید تعداد دفعاتی که کاربرگ را می توان محاسبه کرد (با استفاده از F9 ) به حداکثر 3 بار محدود کند.

این کار با استفاده از ماکروها بر اساس کتاب کار امکان پذیر است. تنها کاری که باید انجام دهید این است که ماکرو محاسبه خودکار را خاموش کند و سپس هر بار که محاسبه انجام می شود، کدی را اجرا کنید. با افزودن این خط به یک ماژول عمومی در کتاب کار شروع کنید:

Global iCalcCount As Integer

از آنجایی که این خط در یک رویه ظاهر نمی شود، متغیری را تعریف می کند که در سطح جهانی در دسترس خواهد بود. از آن برای نگه داشتن تعداد دفعاتی که محاسبه در کتاب کار انجام می شود استفاده می شود.

اکنون باید سه ماکرو (همه گردانندگان رویداد) را به ماژول ThisWorkbook اضافه کنید:

Private Sub Workbook_Open()
    Application.Calculation = xlManual
    Application.CalculateBeforeSave = False
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
      iCalcCount = iCalcCount + 1
      If iCalcCount > 2 Then
        Application.OnKey "{F9}", ""
        MsgBox "You have already done 3 Calculations since opening." & _
          vbCrLf & "{F9} is now disabled"
        Exit Sub
      End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.Calculation = xlAutomatic
    Application.CalculateBeforeSave = True
    Application.OnKey "{F9}"
End Sub

دو تا از این ماکروها هنگام باز شدن و بسته شدن کتاب کار فعال می شوند. در ماکرو Workbook_Open، دو خط کد، محاسبه خودکار را خاموش می‌کنند و همچنین محاسبه‌ای را که معمولاً هنگام ذخیره کتاب کار انجام می‌شود، خاموش می‌کنند. (این امر ضروری است تا یکی از کاربرانی که "مجاز" را محاسبه کرده است، اشتباهاً در هنگام ذخیره کتاب کار انجام نگیرد.) این تنظیمات پیکربندی زمانی که کنترل کننده رویداد Workbook_BeforeClose اجرا می شود، لغو می شوند.

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

رویداد Workbook_SheetCalculate شمارنده iCalcCount را افزایش می‌دهد و اگر بزرگ‌تر از 2 باشد، از روش OnKey برای غیرفعال کردن F9 استفاده می‌کند . البته، کاربر همچنان می‌تواند از یکی از ابزارهای داخلی برای محاسبه مجدد استفاده کند (مانند ابزار محاسبه در نوار وضعیت)، اما باز هم منجر به محاسبه مجدد کاربرگ نمی‌شود.

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 29 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 44 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 49 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 26 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 35 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

230 نفر آنلاین
0 عضو و 230 مهمان در سایت حاضرند
بازدید امروز: 52076
بازدید دیروز: 25180
بازدید کل: 20389389
...