Cum se creează un calendar lunar / anual în Excel?
Într-un timp, trebuie să creați un anumit calendar lunar sau an în Excel, cum îl puteți rezolva rapid? Acest tutorial introduce trucurile pentru a crea rapid calendar lunar sau anual în Excel.
Creați calendar lunar sau anual prin șablon Excel
Creați calendar lunar prin VBA
Creați cu ușurință calendar lunar sau anual prin Calendar perpetuu
Creați calendar lunar sau anual prin șablon Excel
În Excel, puteți utiliza un șablon de calendar pentru a crea un calendar lunar sau anual.
1. În Excel 2010/2013, faceți clic pe Fișier > Nou, în Excel 2007, faceți clic pe Buton Office > Nou, apoi în secțiunea din dreapta a ferestrei popping, tastați calendar în motorul de căutare. Vedeți captura de ecran:
În Excel 2010/2013
În Excel 2007
2. presa Intrați, apoi sunt afișate mai multe tipuri de calendare în fereastră. Selectați un tip de calendar de care aveți nevoie și faceți clic pe Descărcați (sau creați) în panoul din dreapta. Vedeți captura de ecran:
Acum este creat un calendar într-un nou registru de lucru. Vedeți captura de ecran:
Creați calendar lunar prin VBA
Uneori, trebuie să creați un calendar de o lună pentru luna specificată, cum ar fi ianuarie 2015. Este dificil să găsiți un astfel de șablon de calendar cu metoda de mai sus. Aici introduc un cod VBA pentru a vă ajuta să creați un calendar lunar specific.
1. presa Alt + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră, faceți clic pe Insera > Module, apoi copiați și lipiți sub codul VBA în fereastră.
VBA: creați un calendar lunar.
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 vine de pe acest web https://support.microsoft.com/en-us/kb/150774
2. presa F5 cheie sau Alerga și apare o fereastră de dialog pentru a vă reaminti să introduceți luna specifică de care aveți nevoie pentru a crea un calendar, consultați captura de ecran:
3. clic OK. Acum este creat un calendar ianuarie 2015 în foaia activă.
Dar în metodele de mai sus, există unele limitări, de exemplu, dacă doriți să creați un calendar din ianuarie până în mai dintr-o dată, trebuie să creați calendarul în cinci ori cu peste două metode. Acum introduc un utilitar util pentru a-l rezolva rapid și ușor
Creați cu ușurință calendar lunar sau anual prin Calendar perpetuu
Perpetual Calendar este unul dintre utilitățile puternice din Kutools pentru Excelși vă poate ajuta să creați rapid calendar lunar sau anual în Excel simultan.
Kutools pentru Excel, cu mai mult de 300 funcții la îndemână, vă face munca mai ușoară. | ||
1. clic Afacere > Fisa de lucru > Perpetual Calendar. vezi captura de ecran:
2. În dialogul popping, specificați durata lunii pe care doriți să creați calendarul și faceți clic pe Crea. Vedeți captura de ecran:
Apoi se creează un nou registru de lucru cu cinci foi de lucru calendaristice. Vedeți captura de ecran:
Sfat:
Dacă doriți doar să creați un anumit calendar lunar, trebuie doar să selectați aceeași lună atât în casetele de text De la, cât și până la, în caseta de dialog.
Faceți clic aici pentru a afla mai multe despre Calendarul perpetuu
Cele mai bune instrumente de productivitate de birou
Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp. Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...
Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară
- Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
- Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ferestrele noi.
- Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!