Paano Gumawa ng Kalendaryo sa Iyong Excel Worksheet gamit ang VBA Script

Ipamahagi ngayon:

Ang Excel ay may malawak na hanay ng paggamit. Sa artikulong ito, ipapakita namin sa iyo kung paano gumawa ng kalendaryo sa isang worksheet sa pamamagitan ng paggamit ng macro.

Maliban sa pag-iimbak at pagsusuri ng data sa iyong Excel, maaari mo rin itong gamitin upang tapusin ang iba pang mga gawain. Halimbawa, maaari kang mangolekta ng impormasyon sa pamamagitan ng paggamit ng Excel, o maaari mong itala ang iyong pagpaplano sa worksheet. Ngayon ay nakahanap kami ng bagong gamit. Makakagawa ka ng kalendaryo sa isang worksheet. Makikita mo ang epekto sa larawan sa ibaba.Kalendaryo

Maaari kang maglagay ng ilang gawain sa kalendaryong ito. At ang function ay pareho sa isang memorandum. Sa paggamit ng Excel, magiging mas malinaw ang mga gawaing iyon. Ngayon sundin ang mga hakbang sa sumusunod na bahagi at tingnan kung paano ito gumagana.

Lumikha ng isang Kalendaryo

  1. Pindutin ang button na “Alt +F11” sa keyboard para buksan ang worksheet.
  2. At pagkatapos ay magsingit ng isang bagong module sa editor ng Visual Basic.
  3. Kinopya ngayon ang mga sumusunod na code sa bagong module:
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

Kaya't isang napaka-solong macro. Ngunit maaari mong direktang gamitin ito. At hindi mo na kailangang baguhin ito.

  1. Pagkatapos ay pindutin ang pindutan ng "F5" sa keyboard.
  2. Sa pop up window, ilagay ang petsa ng unang araw na may format na "Taon/Buwan/Araw". Ang "Araw" ay maaaring maging anumang araw sa buwang ito, dito namin ilalagay ang "1".Petsa ng Input
  3. At pagkatapos ay i-click ang pindutang "OK". Susunod na babalik ka sa editor. Upang masuri ang resulta, maaari kang bumalik sa worksheet.

Ang kalendaryo ay lumitaw na sa worksheet. At ang cursor ay ipoposisyon sa blangkong cell ng unang araw.Resulta

Sa kabilang banda, kung hindi ka nasisiyahan sa format ng mga cell, maaari mo ring baguhin ang mga code ayon sa iyong kagustuhan. Gamit ang kalendaryong ito, sigurado kang mapapabuti ang iyong kahusayan sa trabaho.

Ang Excel ay hindi gaanong madaling mabigo

Kung madalas kang gumagamit ng Excel, hindi magiging mahirap para sa iyo na mahanap na palaging corrupt ang Excel. Most ng oras, lumabas sa Excel at pagkatapos ay restart kaya nitong lutasin ang problema. Gayunpaman, kung minsan ay makakatagpo ka ng matinding korapsyon sa Excel. At sa sandaling ito, maaari mong gamitin ang aming makapangyarihang tool upang ayusin ang error sa data ng Excel xlsx. Sa pamamagitan ng paggamit ng tool na ito, almost lahat ng mga pagkakamali ay madaling malutas.

Panimula ng May-akda:

Si Anna Ma ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang ayusin ang Word docx file at pananaw sa pag-aayos ng mga produktong software. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa

Ipamahagi ngayon:

Mga komento ay sarado.