VBA сценарийімен Excel жұмыс парағында күнтізбені қалай жасауға болады

Қазір бөлісу:

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

Қазір бөлісу:

Пікірлер жабылды.