VBA Skripti ilə Excel İş Vərəqinizdə Təqvim necə yaradılır

İndi paylaş:

Excel geniş istifadə spektrinə malikdir. Bu yazıda sizə makrodan istifadə edərək iş vərəqində təqvimin necə yaradılacağını göstərəcəyik.

Excel-də məlumatların saxlanması və təhlili istisna olmaqla, siz digər tapşırıqları yerinə yetirmək üçün də istifadə edə bilərsiniz. Məsələn, siz Excel-dən istifadə etməklə məlumat toplaya bilərsiniz və ya planlaşdırmanızı iş vərəqində qeyd edə bilərsiniz. Bu gün biz yeni bir istifadə tapdıq. İş vərəqində təqvim yarada bilərsiniz. Aşağıdakı şəkildəki effekti görə bilərsiniz.təqvim

Bu təqvimə bəzi tapşırıqlar daxil edə bilərsiniz. Və funksiya memorandumla eynidir. Excel-dən istifadə etməklə, bu tapşırıqlar daha aydın olacaq. İndi aşağıdakı hissədəki addımları izləyin və bunun necə işlədiyinə baxın.

Təqvim yaradın

  1. İş vərəqini açmaq üçün klaviaturada "Alt + F11" düyməsini basın.
  2. Və sonra Visual Basic redaktoruna yeni modul daxil edin.
  3. İndi aşağıdakı kodları yeni modula kopyalayın:
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

Beləliklə, çox tək bir makrodur. Ancaq birbaşa istifadə edə bilərsiniz. Və onu dəyişdirməyə ehtiyac yoxdur.

  1. Sonra klaviaturada "F5" düyməsini basın.
  2. Açılan pəncərədə ilk günün tarixini “İl/Ay/Gün” formatı ilə daxil edin. “Gün” bu ayın istənilən günü ola bilər, burada “1” daxil edəcəyik.Daxiletmə tarixi
  3. Və sonra "OK" düyməsini basın. Sonra redaktora qayıdacaqsınız. Nəticəni yoxlamaq üçün iş vərəqinə qayıda bilərsiniz.

Təqvim artıq iş vərəqində görünüb. Və kursor ilk günün boş xanasına yerləşdiriləcək.Nəticə

Digər tərəfdən, xanaların formatı sizi qane etmirsə, kodları öz seçiminizə uyğun olaraq dəyişdirə bilərsiniz. Bu təqvimlə işinizin səmərəliliyini artıracağınıza əminsiniz.

Excel uğursuzluğa daha az meylli deyil

Əgər Excel-dən tez-tez istifadə etsəniz, Excel-in həmişə pozulduğunu görmək sizin üçün çətin olmayacaq. Əksər hallarda Excel-dən çıxın və sonra yenidən başladın, problemi həll edə bilər. Lakin bəzən ciddi Excel pozuntuları ilə qarşılaşacaqsınız. Və bu anda güclü alətimizdən istifadə edə bilərsiniz Excel xlsx məlumat xətasını təmir edinBu alətdən istifadə etməklə, demək olar ki, bütün səhvlər asanlıqla həll edilə bilər.

Müəllif Giriş:

Anna Ma məlumatların bərpası üzrə mütəxəssisdir DataNumendaxil olmaqla məlumatların bərpası texnologiyaları üzrə dünya lideri olan , Inc Word docx faylını təmir edin və Outlook təmiri proqram məhsulları. Ətraflı məlumat üçün ziyarət edin www.datanumen.com

İndi paylaş:

Şərhlər bağlıdır.