Ինչպես ստեղծել օրացույց ձեր Excel աշխատաթերթում VBA սցենարով

Կիսվել հիմա ՝

Excel-ն ունի օգտագործման լայն շրջանակ: Այս հոդվածում մենք ձեզ ցույց կտանք, թե ինչպես ստեղծել օրացույց աշխատանքային թերթում՝ օգտագործելով մակրո:

Բացառությամբ ձեր Excel-ում տվյալների պահպանման և վերլուծության, դուք կարող եք դրանք օգտագործել նաև այլ առաջադրանքներ ավարտելու համար: Օրինակ, դուք կարող եք տեղեկատվություն հավաքել Excel-ի միջոցով, կամ կարող եք նշել ձեր պլանավորումը աշխատաթերթում: Այսօր մենք գտել ենք նոր կիրառություն։ Դուք կարող եք օրացույց ստեղծել աշխատանքային թերթիկում: Էֆեկտը կարող եք տեսնել ստորև ներկայացված նկարում:Օրացույց

Դուք կարող եք մուտքագրել որոշ առաջադրանքներ այս օրացույցում: Իսկ գործառույթը նույնն է, ինչ հուշագիրը։ Օգտագործելով Excel-ը, այդ առաջադրանքները ավելի պարզ կլինեն: Այժմ հետևեք հաջորդ մասի քայլերին և տեսեք, թե ինչպես է այն աշխատում:

Ստեղծեք Օրացույց

  1. Սեղմեք ստեղնաշարի «Alt +F11» կոճակը՝ աշխատաթերթը բացելու համար:
  2. Եվ ապա նոր մոդուլ տեղադրեք Visual Basic խմբագրում:
  3. Այժմ պատճենելով հետևյալ կոդերը նոր մոդուլում.
Sub Create_Monthly_Calender()
    Dim firstweekday As Integer, EndDay As Integer, _
    FirstWeekColumnIndex As Integer, AssignmentDate As Integer, _
    FirstCountNumber As Integer, SecondCountNumber As Integer, _
    LastDay As Range, objRange As Range, RowIndexofLastday As Integer, FirstCountforTargetRange As Integer, SecondCountforTargetRange As Integer

    firstday = InputBox("Input the year, month and the first day with this format: year/month/day")
    If firstday = "" Then Exit Sub


    Range("A1:G1").Merge
    Range("A1") = Year(firstday) & "." & Month(firstday)
    Range("A2") = "Sunday"
    Range("A2").AutoFill Destination:=Range("A2:G2"), Type:=xlFillDefault
    firstweekday = Application.WorksheetFunction.Weekday(firstday)
    Cells(3, firstweekday) = 1

    Select Case Month(firstday)
        Case 1, 3, 5, 7, 8, 10, 12
            EndDay = 31
        Case 4, 6, 9, 11
            EndDay = 30
        Case 2
            If (Year(firstday) Mod 4) = 0 And (Year(firstday) Mod 100) <> 0 Or ((Year(firstday) Mod 400) = 0) Then
                EndDay = 29
            Else
                EndDay = 28
            End If
    End Select

    For FirstWeekColumnIndex = 1 To (7 - firstweekday)
        Cells(3, firstweekday).Offset(0, FirstWeekColumnIndex) = Cells(3, firstweekday).Offset(0, FirstWeekColumnIndex - 1) + 1
    Next FirstWeekColumnIndex

    AssignmentDate = Range("G3") + 1
    For FirstCountNumber = 2 To 10 Step 2
        For SecondCountNumber = 0 To 6
            Cells(3, firstweekday).Offset(FirstCountNumber, 1 - firstweekday + SecondCountNumber) = AssignmentDate
            AssignmentDate = AssignmentDate + 1
            If Cells(3, firstweekday).Offset(FirstCountNumber, 1 - firstweekday + SecondCountNumber) = EndDay Then
                Exit For
            End If
        Next SecondCountNumber
        If Cells(3, firstweekday).Offset(FirstCountNumber, 1 - firstweekday + SecondCountNumber) = EndDay Then
            Exit For
        End If
    Next FirstCountNumber

    ’set format for the range
    With Range("A1")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Font.Size = 16
        .Font.Bold = True
        .Interior.Color = RGB(196, 202, 201)
    End With

    With Range("A2:G2")
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Font.Bold = True
    End With

    For Each LastDay In ActiveSheet.UsedRange
        If LastDay = EndDay Then
            RowIndexofLastday = LastDay.Row
        End If
    Next

    For FirstCountforTargetRange = RowIndexofLastday To 3 Step -2
            With Range("A" & FirstCountforTargetRange, "G" & FirstCountforTargetRange)
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                .RowHeight = 20
            End With
    Next FirstCountforTargetRange

        For SecondCountforTargetRange = RowIndexofLastday + 1 To 4 Step -2
            With Range("A" & SecondCountforTargetRange, "G" & SecondCountforTargetRange)
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                .Font.Bold = True
                .RowHeight = 50
                .ColumnWidth = 12
            End With
    Next SecondCountforTargetRange

    Set objRange = Range("A1", "G" & (RowIndexofLastday + 1))
    With objRange.Borders
        .Color = vbBlack
        .Weight = xlThin
        .LineStyle = xlContinuous
    End With

    ActiveWindow.DisplayGridlines = False
    Cells(3, firstweekday).Offset(1, 0).Select
End Sub

Այսպիսով, շատ միայնակ մակրո է: Բայց դուք կարող եք ուղղակիորեն օգտագործել այն: Եվ դուք կարիք չունեք այն փոփոխելու:

  1. Այնուհետև սեղմեք «F5» կոճակը ստեղնաշարի վրա:
  2. Բացվող պատուհանում մուտքագրեք առաջին օրվա ամսաթիվը «Տարի/ամիս/օր» ձևաչափով: «Օրը» կարող է լինել այս ամսվա ցանկացած օր, այստեղ մենք մուտքագրելու ենք «1»:Մուտքագրման ամսաթիվ
  3. Եվ այնուհետև սեղմեք «OK» կոճակը: Հաջորդիվ դուք կվերադառնաք խմբագրին: Արդյունքը ստուգելու համար կարող եք վերադառնալ աշխատանքային թերթիկ:

Օրացույցն արդեն հայտնվել է աշխատաթերթում: Եվ կուրսորը կտեղադրվի առաջին օրվա դատարկ վանդակում:Արդյունք

Մյուս կողմից, եթե դուք գոհ չեք բջիջների ձևաչափից, կարող եք նաև փոփոխել կոդերը՝ ըստ ձեր նախասիրության։ Այս օրացույցով դուք վստահաբար կբարելավեք ձեր աշխատանքի արդյունավետությունը:

Excel-ը պակաս հակված չէ ձախողման

Եթե ​​հաճախ եք օգտագործում Excel-ը, ձեզ համար դժվար չի լինի նկատել, որ Excel-ը միշտ վնասվում է: Շատ դեպքերում Excel-ը փակելը և վերագործարկելը կարող է լուծել խնդիրը: Այնուամենայնիվ, երբեմն կարող եք հանդիպել Excel-ի լուրջ վնասման: Եվ այս պահին կարող եք օգտագործել մեր հզոր գործիքը՝ վերանորոգել Excel xlsx տվյալների սխալըԱյս գործիքն օգտագործելով՝ գրեթե բոլոր սխալները կարող են հեշտությամբ լուծվել։

Հեղինակի ներածություն.

Աննա Ման տվյալների վերականգման փորձագետ է DataNumen, Inc., որը տվյալների վերականգման տեխնոլոգիաների համաշխարհային առաջատարն է, այդ թվում Word docx ֆայլի վերանորոգում և հեռանկարների նորոգման ծրագրակազմի արտադրանքները: Լրացուցիչ տեղեկությունների համար այցելեք www.datanumen.com

Կիսվել հիմա ՝

Comments փակվում են: