Excel har et bredt spekter av bruk. I denne artikkelen vil vi vise deg hvordan du lager en kalender i et regneark ved å bruke en makro.
Bortsett fra å lagre og analysere data i Excel, kan du også bruke den til å fullføre andre oppgaver. Du kan for eksempel samle informasjon ved å bruke Excel, eller du kan notere ned planleggingen i arbeidsarket. I dag har vi funnet en ny bruk. Du kan lage en kalender i et regneark. Du kan se effekten på bildet nedenfor.
Du kan legge inn noen oppgaver i denne kalenderen. Og funksjonen er den samme som et notat. Ved å bruke Excel vil disse oppgavene bli klarere. Følg nå trinnene i den følgende delen og se hvordan det fungerer.
Lag en kalender
- Trykk på knappen "Alt + F11" på tastaturet for å åpne regnearket.
- Og sett inn en ny modul i Visual Basic-editoren.
- Kopier nå følgende koder inn i den nye modulen:
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
Dermed er en veldig ensom makro. Men du kan bruke den direkte. Og du trenger ikke å endre den.
- Trykk deretter på knappen "F5" på tastaturet.
- I popup-vinduet skriver du inn datoen for den første dagen med formatet "År/måned/dag". "Dagen" kan være hvilken som helst dag i denne måneden, her vil vi legge inn "1".
- Og klikk deretter på knappen "OK". Deretter kommer du tilbake til redaktøren. For å sjekke resultatet kan du gå tilbake til arbeidsarket.
Kalenderen har allerede dukket opp i regnearket. Og markøren vil bli plassert ved den tomme cellen den første dagen.
På den annen side, hvis du ikke er fornøyd med celleformatet, kan du også endre kodene i henhold til dine preferanser. Med denne kalenderen vil du garantert forbedre arbeidseffektiviteten.
Excel er ikke mindre utsatt for feil
Hvis du bruker Excel ofte, vil det ikke være vanskelig for deg å finne ut at Excel alltid vil skade. Most av tiden, avslutt Excel og deretter restart det kan løse problemet. Noen ganger vil du imidlertid møte alvorlig Excel-korrupsjon. Og i dette øyeblikket kan du bruke vårt kraftige verktøy for å reparer Excel xlsx datafeil. Ved å bruke dette verktøyet kan almost alle feilene kan løses enkelt.
Forfatterintroduksjon:
Anna Ma er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert reparere Word docx-fil og Outlook-reparasjonsprodukter. For mer informasjon besøk www.datanumen. Med

