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

جیسون یک کاربرگ دارد که شامل چندین ستون است که هر کدام نشان دهنده یک هفته مالی برای شرکتش است. این هفته‌های مالی با ستون G شروع می‌شوند، ستون H دومین هفته مالی، ستون I هفته سوم است و غیره. جیسون می‌خواهد یک کلان ایجاد کند که هنگام اجرا به تاریخ امروز نگاه کند، هفته مالی را بر اساس آن تاریخ محاسبه کند و سپس ستون‌های هفته مالی را که در محدوده مشخصی قرار ندارند پنهان کند.

برای ارائه پاسخ، فرض می‌کنم محدوده مورد نظر شما برابر با 13 هفته (یک چهارم) بلافاصله قبل از هفته مالی جاری است. با در نظر گرفتن این موضوع، چند کار وجود دارد که باید توسط ماکرو انجام شود. ابتدا باید مشخص کند که در حال حاضر چه هفته مالی است. سپس، باید تمام هفته ها را نه در 13 هفته قبل از این هفته مالی فعلی پنهان کند و همه آنهایی را که هستند آشکار کند.

انجام این کار نسبتاً آسان است، به استثنای فهمیدن اینکه در حال حاضر کدام هفته مالی است. روش تعیین هفته های مالی می تواند از شرکتی به شرکت دیگر متفاوت باشد. با این حال، برای سادگی، فرض می‌کنم که تعیین نسبتاً ساده است: روز سال را بر هفت تقسیم کنید و ببینید چه چیزی داریم.

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

Sub HideWeeks()
    Dim BeginYear As Date           start of fiscal year date
    Dim FirstWeekCol As Integer     first fiscal week column
    Dim FirstShowWkCol As Integer   first column to show
    Dim CurrWkCol As Integer        current week column
    Dim J As Integer

    BeginYear = Cells(1, 1).Value
    FirstWeekCol = 7  fiscal weeks begin with Col 7 (G)

    Calculate Column of the current fiscal week
    CurrWkCol = ((Date - BeginYear)  7) + FirstWeekCol - 1
    Calculate column of the first week to show
    FirstShowWkCol = CurrWkCol - 14
    If FirstShowWkCol < FirstWeekCol Then
        FirstShowWkCol = FirstWeekCol
    End If

    Application.ScreenUpdating = False

    Unhide all columns
    Columns("G:IV").Hidden = False  Unhide all week Columns

    Hide week column before the rolling quarter
    For J = FirstWeekCol To FirstShowWkCol
        Columns(J).Hidden = True
    Next J

    Hide week column after current week
    For J = CurrWkCol + 1 To 256
        Columns(J).Hidden = True
    Next J

    Application.ScreenUpdating = True
End Sub

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

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

پاسخ شما

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

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

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

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 56 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 32 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 35 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 28 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

224 نفر آنلاین
0 عضو و 224 مهمان در سایت حاضرند
بازدید امروز: 22544
بازدید دیروز: 17853
بازدید کل: 20334723
...