Hvordan oprettes en månedlig / årlig kalender i Excel?
På et stykke tid skal du oprette en bestemt måned eller årskalender i Excel, hvordan kan du hurtigt løse det? Denne vejledning introducerer tricks til hurtigt at oprette månedlig eller årlig kalender i Excel.
Opret månedlig eller årlig kalender ved hjælp af Excel-skabelon
Opret nemt månedlig eller årlig kalender ved hjælp af Perpetual Calendar
Opret månedlig eller årlig kalender ved hjælp af Excel-skabelon
I Excel kan du bruge en kalenderskabelon til at oprette en månedlig eller årlig kalender.
1. Klik på i Excel 2010/2013 File (Felt) > Nyi Excel 2007 skal du klikke på Kontorknap > Ny, skriv derefter i højre del af poppevinduet kalender ind i søgemaskinen. Se skærmbillede:
I Excel 2010/2013
I Excel 2007
2. Trykke Indtast, så vises der flere typer kalendere i vinduet. Vælg en type kalender, du har brug for, og klik på Download (eller Opret) i højre rude. Se skærmbillede:
Nu oprettes en kalender i en ny projektmappe. Se skærmbillede:
Opret månedskalender af VBA
Nogle gange er du nødt til at oprette en månedskalender for en bestemt måned, f.eks. Januar 2015. Det kan være et kuld, der er svært at finde en sådan kalenderskabelon med ovenstående metode. Her introducerer jeg en VBA-kode for at hjælpe dig med at oprette en bestemt månedskalender.
1. Trykke Alt + F11 taster for at åbne Microsoft Visual Basic til applikationer vindue, skal du klikke på indsatte > Moduler, kopier og indsæt derefter under VBA-koden i vinduet.
VBA: Opret månedlig kalender.
Sub CalendarMaker()
' Unprotect sheet if had previous calendar to prevent error.
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, _
Scenarios:=False
' Prevent screen flashing while drawing calendar.
Application.ScreenUpdating = False
' Set up error trapping.
On Error GoTo MyErrorTrap
' Clear area a1:g14 including any previous calendar.
Range("a1:g14").Clear
' Use InputBox to get desired month and year and set variable
' MyInput.
MyInput = InputBox("Type in Month and year for Calendar ")
' Allow user to end macro with Cancel in InputBox.
If MyInput = "" Then Exit Sub
' Get the date value of the beginning of inputted month.
StartDay = DateValue(MyInput)
' Check if valid date but not the first of the month
' -- if so, reset StartDay to first day of month.
If Day(StartDay) <> 1 Then
StartDay = DateValue(Month(StartDay) & "/1/" & _
Year(StartDay))
End If
' Prepare cell for Month and Year as fully spelled out.
Range("a1").NumberFormat = "mmmm yyyy"
' Center the Month and Year label across a1:g1 with appropriate
' size, height and bolding.
With Range("a1:g1")
.HorizontalAlignment = xlCenterAcrossSelection
.VerticalAlignment = xlCenter
.Font.Size = 18
.Font.Bold = True
.RowHeight = 35
End With
' Prepare a2:g2 for day of week labels with centering, size,
' height and bolding.
With Range("a2:g2")
.ColumnWidth = 11
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = xlHorizontal
.Font.Size = 12
.Font.Bold = True
.RowHeight = 20
End With
' Put days of week in a2:g2.
Range("a2") = "Sunday"
Range("b2") = "Monday"
Range("c2") = "Tuesday"
Range("d2") = "Wednesday"
Range("e2") = "Thursday"
Range("f2") = "Friday"
Range("g2") = "Saturday"
' Prepare a3:g7 for dates with left/top alignment, size, height
' and bolding.
With Range("a3:g8")
.HorizontalAlignment = xlRight
.VerticalAlignment = xlTop
.Font.Size = 18
.Font.Bold = True
.RowHeight = 21
End With
' Put inputted month and year fully spelling out into "a1".
Range("a1").Value = Application.Text(MyInput, "mmmm yyyy")
' Set variable and get which day of the week the month starts.
DayofWeek = WeekDay(StartDay)
' Set variables to identify the year and month as separate
' variables.
CurYear = Year(StartDay)
CurMonth = Month(StartDay)
' Set variable and calculate the first day of the next month.
FinalDay = DateSerial(CurYear, CurMonth + 1, 1)
' Place a "1" in cell position of the first day of the chosen
' month based on DayofWeek.
Select Case DayofWeek
Case 1
Range("a3").Value = 1
Case 2
Range("b3").Value = 1
Case 3
Range("c3").Value = 1
Case 4
Range("d3").Value = 1
Case 5
Range("e3").Value = 1
Case 6
Range("f3").Value = 1
Case 7
Range("g3").Value = 1
End Select
' Loop through range a3:g8 incrementing each cell after the "1"
' cell.
For Each cell In Range("a3:g8")
RowCell = cell.Row
ColCell = cell.Column
' Do if "1" is in first column.
If cell.Column = 1 And cell.Row = 3 Then
' Do if current cell is not in 1st column.
ElseIf cell.Column <> 1 Then
If cell.Offset(0, -1).Value >= 1 Then
cell.Value = cell.Offset(0, -1).Value + 1
' Stop when the last day of the month has been
' entered.
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
' Exit loop when calendar has correct number of
' days shown.
Exit For
End If
End If
' Do only if current cell is not in Row 3 and is in Column 1.
ElseIf cell.Row > 3 And cell.Column = 1 Then
cell.Value = cell.Offset(-1, 6).Value + 1
' Stop when the last day of the month has been entered.
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
' Exit loop when calendar has correct number of days
' shown.
Exit For
End If
End If
Next
' Create Entry cells, format them centered, wrap text, and border
' around days.
For x = 0 To 5
Range("A4").Offset(x * 2, 0).EntireRow.Insert
With Range("A4:G4").Offset(x * 2, 0)
.RowHeight = 65
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlTop
.WrapText = True
.Font.Size = 10
.Font.Bold = False
' Unlock these cells to be able to enter text later after
' sheet is protected.
.Locked = False
End With
' Put border around the block of dates.
With Range("A3").Offset(x * 2, 0).Resize(2, _
7).Borders(xlLeft)
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Range("A3").Offset(x * 2, 0).Resize(2, _
7).Borders(xlRight)
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
Range("A3").Offset(x * 2, 0).Resize(2, 7).BorderAround _
Weight:=xlThick, ColorIndex:=xlAutomatic
Next
If Range("A13").Value = "" Then Range("A13").Offset(0, 0) _
.Resize(2, 8).EntireRow.Delete
' Turn off gridlines.
ActiveWindow.DisplayGridlines = False
' Protect sheet to prevent overwriting the dates.
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
' Resize window to show all of calendar (may have to be adjusted
' for video configuration).
ActiveWindow.WindowState = xlMaximized
ActiveWindow.ScrollRow = 1
' Allow screen to redraw with calendar showing.
Application.ScreenUpdating = True
' Prevent going to error trap unless error found by exiting Sub
' here.
Exit Sub
' Error causes msgbox to indicate the problem, provides new input box,
' and resumes at the line that caused the error.
MyErrorTrap:
MsgBox "You may not have entered your Month and Year correctly." _
& Chr(13) & "Spell the Month correctly" _
& " (or use 3 letter abbreviation)" _
& Chr(13) & "and 4 digits for the Year"
MyInput = InputBox("Type in Month and year for Calendar")
If MyInput = "" Then Exit Sub
Resume
End Sub
VBA kommer fra dette web https://support.microsoft.com/en-us/kb/150774
2. Trykke F5 nøgle eller Kør knappen, og der vises en dialogboks for at minde dig om at skrive den specifikke måned, du har brug for for at oprette en kalender, se skærmbillede:
3. klik OK. Nu oprettes en kalender fra januar 2015 i det aktive ark.
Men i ovenstående metoder er der nogle begrænsninger, for eksempel hvis du vil oprette en kalender fra januar til maj på én gang, skal du oprette kalenderen fem gange med over to metoder. Nu introducerer jeg et praktisk værktøj til at løse det hurtigt og nemt
Opret nemt månedlig eller årlig kalender ved hjælp af Perpetual Calendar
Perpetual Calendar er et af stærke værktøjer i Kutools til Excel, og det kan hjælpe dig med hurtigt at oprette månedlig eller årlig kalender i Excel på én gang.
Kutools til Excel, med mere end 300 praktiske funktioner, der gør dine job lettere. | ||
1. klik Enterprise > Arbejdsark > Perpetual Calendar. se skærmbillede:
2. I poppedialogen skal du angive den månedslængde, du vil oprette kalenderen, og klikke på Opret. Se skærmbillede:
Derefter oprettes en ny projektmappe med fem kalenderark. Se skærmbillede:
Tip:
Hvis du bare vil oprette en bestemt månedskalender, skal du bare vælge den samme måned både i Fra og Til tekstfelter i dialogen.
Klik her for at vide mere om Perpetual Calendar
Bedste kontorproduktivitetsværktøjer
Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid. Klik her for at få den funktion, du har mest brug for...
Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere
- Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
- Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
- Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!