Hvordan skape månedlig /årlig kalender i Excel?

In Excel, kan du bruke en kalender mal for å opprette en månedlig eller årlig kalender.
1. I Excel 2010/2013, klikk på Fil > Ny, i Excel 2007, klikker du Office-knappen > Ny, deretter i den høyre delen av dukker vinduet skriver kalenderen inn i søkemotoren. Se skjermbilde:
I Excel 2010/2013
I Excel 2007
to. Trykk Enter, da flere typer kalendere er notering i vinduet. Velg en type kalender du trenger, og klikk på Last ned (eller Opprett) i ruten til høyre. Se skjermbilde:
nå en kalender er opprettet i en ny arbeidsbok. Se skjermbilde:

Opprett månedlig kalender med VBA
Noen ganger må du opprette en måned kalender for spesifisert måned, slik som Jan 2015. Det kan være et kull vanskelig å finne en slik kalendermal med metoden ovenfor. Her introduserer jeg en VBA-kode for å hjelpe deg å lage en bestemt månedlig kalender.
1. Trykk ALT + F11-tastene for å åpne Microsoft Visual Basic for Applications-vinduet, klikk Sett > Modul, og deretter kopiere og lime inn under VBA-kode til vinduet
VBA. Lag månedlig kalender
Sub CalendarMaker () 'Opphev ført dersom hatt tidligere kalenderen for å hindre feil.. ActiveSheet.Protect DrawingObjects: = False, Innhold: = False, _ Scenarier: = False 'Hindre skjermen blinker mens du tegner kalenderen. Application.ScreenUpdating = False 'Sett opp feilen fangst. On Error GoTo MyErrorTrap 'Clear området a1: G14 inkludert eventuelle foregående kalenderår. Range. ("A1: G14") Clear 'Bruk InputBox å få ønsket måned og år og sette variabelen' MyInput. MyInput = InputBox ("Type Måned og år for Calendar") "Tillat bruker å ende makro med avbestiller i InputBox. Hvis MyInput = "" Then Exit Sub 'Få datoverdien av begynnelsen av inputted måned. StartDay = DATEVALUE (MyInput) 'Sjekk om gyldig dato, men ikke den første i måneden' - hvis så, reset StartDay til første dag i måneden. Hvis Day (StartDay) < > 1 Så StartDay = DATEVALUE (Måned (StartDay) & "/1 /" & _ Year (StartDay)) End If 'Forbered celle for måned og år som fullt skrevet ut. . Range ("a1") NumberFormat = "mmmm åååå" 'senter måned og år etiketten over a1: g1 med riktig "størrelse, høyde og fet skrift. Med Range ("A1: g1") .HorizontalAlignment = xlCenterAcrossSelection .VerticalAlignment = xlCenter .Font.Size = 18 .Font.Bold = True .RowHeight = 35 Slutt med 'Forbered a2: g2 for dagen i uken etiketter med sentrering, størrelse, 'høyde og fet skrift. Med Range ("a2: g2") .ColumnWidth = 11 .VerticalAlignment = xlCenter .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Orientation = xlHorizontal .Font.Size = 12 .Font.Bold = True .RowHeight = 20 Slutt med "Sett dager av uke i a2: g2. Range ("A2") = "Sunday" Range ("b2") = "Monday" Range ("c2") = "tirsdag" Range ("d2") = "onsdag" Range ("e2") = "Torsdag" Range ("F2") = "Friday" Range ("g2") = "Lørdag" Rydd a3: g7 for datoer med venstre /topp justering, størrelse, høyde "og fet skrift. Med Range ("a3: G8") .HorizontalAlignment = xlRight .VerticalAlignment = xlTop .Font.Size = 18 .Font.Bold = True .RowHeight = 21 Slutt med "Sett inputted måned og år fullt stave ut i" a1 ". Range ("a1"). Verdi = Application.Text (MyInput, "mmmm åååå") "Set variabel og få hvilken dag i uken i måneden starter. DayOfWeek = ukedag (StartDay) 'Sett variabler for å identifisere år og måned som separate' variabler. CurYear = Year (StartDay) CurMonth = Måned (StartDay) 'Sett variable og beregne den første dagen i neste måned. FinalDay = Dateserial (CurYear, CurMonth + 1, 1) 'plassere en "1" i celle posisjonen til den første dagen av den valgte' måned basert på dayOfWeek. Velg Sak dayOfWeek Tilfelle 1 Range ("a3"). Verdi = 1 Sak 2 Range ("b3"). Verdi = 1 Sak 3 Range ("c3"). Verdi = 1 Sak 4 Range ("d3"). Verdi = 1 Sak 5 Range ("e3") Verdi = 1 Sak 6 Range ("F3") Verdi = 1 Sak 7 Range ("g3") Verdi = 1 End Select 'Loop gjennom utvalg a3:... g8 økes hver celle etter "1" 'celle. For Hver celle i Range ("a3: G8") RowCell = cell.Row ColCell = cell.Column "Gjør om" 1 "er i første kolonne. Hvis cell.Column = 1 Og cell.Row = 3 Then 'gjør du hvis gjeldende celle er ikke i første kolonne. ElseIf cell.Column < > 1 Da Hvis cell.Offset (0, -1) .Value > = 1 Så cell.Value = cell.Offset (0, -1) .Value + 1 'Stopp når den siste dagen i måneden er "inn. Hvis cell.Value > (FinalDay - StartDay) Deretter cell.Value = "" 'Exit loop når kalenderen har riktig antall' dager vist. Exit For End If End If 'Har bare hvis gjeldende celle er ikke i Row 3 og er i kolonne 1. ElseIf cell.Row > 3 Og cell.Column = 1 Så cell.Value = cell.Offset (-1, 6) .Value + 1 'Stopp når den siste dagen i måneden er lagt inn. Hvis cell.Value > (FinalDay - StartDay) Deretter cell.Value = "" 'Exit loop når kalenderen har riktig antall dager vist. Exit For End If End If Neste 'Opprett Entry celler, formatere dem sentrert, bryte tekst og border "rundt dager. For x = 0 til 5 Range ("A4") Offset (x * 2, 0) .EntireRow.Insert Med Range ("A4: G4").. Offset (x * 2, 0) .RowHeight = 65 .HorizontalAlignment = xlCenter .VerticalAlignment = xlTop .WrapText = True .Font.Size = 10 .Font.Bold = False 'Lås opp disse cellene til å være i stand til å skrive inn tekst senere etter' ark er beskyttet. .Locked = False End Med 'Sett ramme rundt blokken av datoer. Med Range ("A3"). Offset (x * 2, 0) .Resize (2, _ 7) .Borders (xlLeft) .Weight = xlThick .ColorIndex = xlAutomatic End With med 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 _ Vekt: = xlThick, ColorIndex:.. = xlAutomatic Neste Hvis Range ("A13") Verdi = "" Så Range ("A13") Offset (0, 0) _ .Resize (2, 8) .EntireRow. Slett 'Slå av rutenett. ActiveWindow.DisplayGridlines = False 'Beskytt ark for å hindre overskriving datoene. ActiveSheet.Protect DrawingObjects: = true, Innhold: = true, _ Scenarier: = True 'Resize vindu for å vise alle kalender (kan måtte justeres "for video konfigurasjon). ActiveWindow.WindowState = xlMaximized ActiveWindow.ScrollRow = 1 'Tillat skjermen for å tegne med kalenderen viser. Application.ScreenUpdating = True 'Hindre kommer til feil felle mindre feil funnet ved å gå ut Sub' her. Exit Sub 'Feil årsaker MsgBox å indikere problemet, gir ny input boksen ", og fortsetter på linjen som forårsaket feilen. MyErrorTrap: MsgBox "Du kan ikke ha tastet Måned og År riktig." _ &Amp; Chr (13) & "Spell Månedens riktig" _ & "(Eller bruke 3 bokstav forkortelse)" _ & Chr (13) & "og 4 siffer for the Year" MyInput = InputBox ("Type Måned og år for Calendar") Hvis MyInput = "" Then Exit Sub Resume End Sub


VBA kommer fra denne nettsiden http: //support.microsoft.com/en-us/kb/150774
2. Trykk F5 eller Run-knappen, og en dialogboks er poppet ut for å minne deg på å skrive den spesifikke måneden du trenger for å lage en kalender, se skjermbilde:
tre. Klikk på OK. Nå januar 2015 kalender er skapt i det aktive arket.
Men i ovennevnte metodene, er det noen begrensninger, for eksempel hvis du ønsker å lage en kalender fra januar til mai på en gang, må du opprette kalenderen i fem ganger med over to metoder. Nå introduserer jeg et praktisk verktøy for å løse det raskt og enkelt

Enkelt opprette månedlig eller årlig kalender ved Perpetual Calendar
Perpetual Calendar er en av kraftige verktøy i Kutools for Excel, og det kan hjelpe deg raskt lage månedlig eller årlig kalender i Excel på en gang.
Kutools for Excel omfatter mer enn 120 praktiske Excel-verktøy. Gratis å prøve uten begrensning i 60 dager. Få den nå
Etter gratis Installere Kutools for Excel, kan du gjøre som under trinn:
1. Klikk Enterprise > Regneark &​​gt; Perpetual Calendar. se skjermbilde:
to. I spratt dialogboksen, angi måned varigheten du ønsker å lage kalenderen, og klikk på Opprett. Se skjermbilde:
Deretter en ny arbeidsbok er opprettet med fem kalender regneark. Se skjermbilde:
Tips:
Hvis du bare ønsker å opprette en bestemt måned kalender, trenger bare å velge samme måned både i Fra og Til tekstboksene i dialogboksen
Klikk her for å vite. mer om Perpetual Calendar
installere Kutools for Excel og bruke den uten begrensninger! Anmeldelser