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

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

ماکرو زیر برای کمک به این شرایط ایجاد شده است. نام کاربرگ ها را در ورک بوک شما بررسی می کند و اگر با حروف "ورق" شروع می شوند، نام آنها را به روزهای ماه تغییر می دهد. اگر برگه های کافی در ورک بوک وجود نداشته باشد، در صورت لزوم برای هر روز از ماه، برگه ها را اضافه می کند.

Sub DoDays()
    Dim J As Integer
    Dim K As Integer
    Dim sDay As String
    Dim sTemp As String
    Dim iTarget As Integer
    Dim dBasis As Date

    iTarget = 13
    While (iTarget < 1) Or (iTarget > 12)
        iTarget = Val(InputBox("Numeric month?"))
        If iTarget = 0 Then Exit Sub
    Wend

    Application.ScreenUpdating = False
    sTemp = Str(iTarget) & "/1/" & Year(Now())
    dBasis = CDate(sTemp)
    
    For J = 1 To 31
        sDay = Format((dBasis + J - 1), "dddd mm-dd-yyyy")
        If Month(dBasis + J - 1) = iTarget Then

            If J <= Sheets.Count Then
                If Left(Sheets(J).Name, 5) = "Sheet" Then
                    Sheets(J).Name = sDay
                Else
                    Sheets.Add.Move after:=Sheets(Sheets.Count)
                    ActiveSheet.Name = sDay
                End If
            Else
                Sheets.Add.Move after:=Sheets(Sheets.Count)
                ActiveSheet.Name = sDay
            End If
        End If
    Next J

    For J = 1 To (Sheets.Count - 1)
        For K = J + 1 To Sheets.Count
            If Right(Sheets(J).Name, 10) > _
              Right(Sheets(K).Name, 10) Then
                Sheets(K).Move Before:=Sheets(J)
            End If
        Next K
    Next J

    Sheets(1).Activate
    Application.ScreenUpdating = True
End Sub

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

    sTemp = Str(iTarget) & "/1/" & Year(Now())

بیایید بگوییم که شما واقعاً به دلایلی می خواهید ماه در سال 2015 باشد. فقط خط را به شکل زیر تغییر دهید:

    sTemp = Str(iTarget) & "/1/2015"

ماکرو نام هر برگه را برابر با روز هفته و به دنبال آن تاریخ واقعی تنظیم می کند، مانند «چهارشنبه 2020-03-28». اگر می خواهید نحوه نام گذاری برگه ها برای هر روز را تغییر دهید، فقط نحوه ساخت متغیر sDay را در ماکرو تغییر دهید.

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

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

پاسخ شما

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

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

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

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

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

23.2k سوال

8.5k پاسخ

613 دیدگاه

10.8k کاربر

164 نفر آنلاین
0 عضو و 164 مهمان در سایت حاضرند
بازدید امروز: 3397
بازدید دیروز: 13001
بازدید کل: 19457698
...