Come creare un calendario mensile / annuale in Excel?
In un certo momento, è necessario creare un mese o un anno specifico in Excel, come puoi risolverlo rapidamente? Questo tutorial introduce i trucchi per creare rapidamente un calendario mensile o annuale in Excel.
Crea un calendario mensile o annuale con il modello Excel
Crea calendario mensile da VBA
Crea facilmente un calendario mensile o annuale con il calendario perpetuo
Crea un calendario mensile o annuale con il modello Excel
In Excel è possibile utilizzare un modello di calendario per creare un calendario mensile o annuale.
1. In Excel 2010/2013, fare clic su Compila il > New, in Excel 2007, fare clic su Pulsante di ufficio > New, quindi nella sezione destra della finestra che si apre, digita gestione del progetto nel motore di ricerca. Vedi screenshot:
Nell'Excel 2010/2013
In Excel 2007
2. Stampa Enter, quindi nella finestra vengono elencati più tipi di calendari. Seleziona un tipo di calendario di cui hai bisogno e fai clic Scarica (o crea) nel riquadro di destra. Vedi screenshot:
Ora viene creato un calendario in una nuova cartella di lavoro. Vedi screenshot:
Crea calendario mensile da VBA
A volte, è necessario creare un calendario di un mese per il mese specificato, ad esempio gennaio 2015. Potrebbe essere difficile trovare un modello di calendario di questo tipo con il metodo sopra. Qui presento un codice VBA per aiutarti a creare un calendario mensile specifico.
1. Stampa Alt + F11 chiavi per aprire Microsoft Visual Basic, Applications Edition finestra, fare clic inserire > Moduli, quindi copia e incolla sotto il codice VBA nella finestra.
VBA: crea un calendario mensile.
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
Il VBA proviene da questo web https://support.microsoft.com/en-us/kb/150774
2. Stampa F5 chiave o Correre e viene visualizzata una finestra di dialogo per ricordarti di digitare il mese specifico di cui hai bisogno per creare un calendario, vedi screenshot:
3. Clic OK. Ora un calendario gennaio 2015 viene creato nel foglio attivo.
Ma nei metodi sopra, ci sono alcune limitazioni, ad esempio, se vuoi creare un calendario da gennaio a maggio contemporaneamente, devi creare il calendario in cinque volte con i due metodi precedenti. Ora presento una pratica utility per risolverlo rapidamente e facilmente
Crea facilmente un calendario mensile o annuale con il calendario perpetuo
Calendario Perpetuo è una delle potenti utilità in Kutools for Excele può aiutarti a creare rapidamente un calendario mensile o annuale in Excel contemporaneamente.
Kutools for Excel, con oltre 300 funzioni utili, rende il tuo lavoro più facile. | ||
1. Clic Impresa > Foglio di lavoro > Calendario Perpetuo. vedi screenshot:
2. Nella finestra di dialogo che appare, specificare la durata del mese in cui si desidera creare il calendario e fare clic Creare. Vedi screenshot:
Quindi viene creata una nuova cartella di lavoro con cinque fogli di lavoro del calendario. Vedi screenshot:
Mancia:
Se si desidera creare un calendario mensile specifico, è sufficiente selezionare lo stesso mese nelle caselle di testo Da e A nella finestra di dialogo.
Fare clic qui per saperne di più sul calendario perpetuo
I migliori strumenti per la produttività in ufficio
Potenzia le tue competenze in Excel con Kutools for Excele sperimenta l'efficienza come mai prima d'ora. Kutools for Excel Offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Fai clic qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
- Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
