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

باربارا در تلاش است راهی برای نمایش چندین کاربرگ، یکی پس از دیگری، تقریباً مانند یک نمایش اسلاید پیدا کند. همه کاربرگ ها در یک ورک بوک قرار دارند. او می خواهد که هر کاربرگ به مدت 5 تا 10 ثانیه نمایش داده شود، سپس به طور خودکار به کاربرگ بعدی پریده و برای 5 تا 10 ثانیه نمایش داده شود و غیره. مفهوم این است که همه چیز را زنده نگه دارید و افراد می توانند آن را روی یک مانیتور مشاهده کنند و فقط منتظر بمانند تا برگه کاری آنها ظاهر شود.

انجام این کار با تکیه بر روش .Wait برای توقف ماکرو برای مدت زمان مشخصی نسبتاً آسان است. تنها کاری که باید انجام دهید این است که با مکث بین هر صفحه از صفحه نمایش هر صفحه عبور کنید. ماکرو زیر این کار را انجام می دهد:

Sub SlideShow1()
    Dim dDelay As Date
    Dim w As Worksheet

    dDelay = TimeValue("00:00:08")

    For Each w In Worksheets
        DoEvents
        w.Activate
        Application.Wait (Now() + dDelay)
        DoEvents
    Next w
End Sub

ماکرو به مدت هشت ثانیه مکث می کند، اما می توانید مدت زمانی را در خطی که مقداری را به متغیر dDelay اختصاص می دهد تغییر دهید. توجه داشته باشید که ماکرو همچنین چند بار از تابع DoEvents در حلقه نمایش استفاده می کند تا در صورت تمایل، Ctrl+C را فشار دهید تا از ماکرو خارج شوید.

توجه داشته باشید که ماکرو فقط یک بار از مجموعه Worksheets عبور می کند. اگر می خواهید چندین بار این کار را انجام دهید، می توانید پس از اتمام کار، ماکرو را مجدداً راه اندازی کنید، یا می توانید ماکرو را طوری تغییر دهید که حلقه For Every در یک حلقه بیرونی For Next قرار بگیرد که تعداد دفعات را از طریق مجموعه کاربرگ ها کنترل می کند. .

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

Sub SlideShow2()
    Dim dDelay As Date
    Dim J As Integer
    Dim iCnt As Integer
    Dim sNames(19) As String

    sNames(1) = "Sheet3"
    sNames(2) = "Sheet1"
    sNames(3) = "Sheet2"
    sNames(4) = "Sheet1"
    sNames(5) = "Sheet5"
    iCnt = 5

    dDelay = TimeValue("00:00:08")

    For J = 1 To iCnt
        DoEvents
        Worksheets(sNames(J)).Activate
        Application.Wait (Now() + dDelay)
        DoEvents
    Next J
End Sub

تنظیم ماکرو کمی بیشتر طول می کشد، زیرا باید نام کاربرگ را به آرایه sNames اختصاص دهید. (اینها باید دقیقاً همانطور که در برگه های کاربرگ ظاهر می شوند نوشته شوند.) آنها را به ترتیب دلخواه قرار دهید و حتی می توانید یک کاربرگ را چندین بار تکرار کنید، همانطور که با . سپس متغیر iCnt باید روی تعداد نام های کاربرگ در آرایه sNames تنظیم شود. سپس حلقه نمایش از میان آرایه عبور می کند و هر کاربرگ مشخص شده را به نوبه خود نمایش می دهد.

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

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

96 نفر آنلاین
0 عضو و 96 مهمان در سایت حاضرند
بازدید امروز: 20852
بازدید دیروز: 19586
بازدید کل: 15313296
...