Sut i greu calendr misol / blynyddol yn Excel?
Mewn peth amser, mae angen i chi greu calendr mis neu flwyddyn benodol yn Excel, sut allwch chi ei ddatrys yn gyflym? Mae'r tiwtorial hwn yn cyflwyno'r triciau i greu calendr misol neu flynyddol yn Excel yn gyflym.
Creu calendr misol neu flynyddol yn ôl Templed Excel
Yn hawdd creu calendr misol neu flynyddol yn ôl Perpetual Calendar
Creu calendr misol neu flynyddol yn ôl Templed Excel
Yn Excel, gallwch ddefnyddio templed calendr i greu calendr misol neu flynyddol.
1. Yn Excel 2010/2013, cliciwch Ffeil > Nghastell Newydd Emlyn, yn Excel 2007, cliciwch Botwm Swyddfa > Nghastell Newydd Emlyn, yna yn yr adran dde o'r ffenestr popio, teipiwch calendr i mewn i'r peiriant chwilio. Gweler y screenshot:
Yn Excel 2010/2013
Yn Excel 2007
2. Gwasgwch Rhowch, yna mae sawl math o galendr yn rhestru yn y ffenestr. Dewiswch un math o galendr sydd ei angen arnoch chi, a chliciwch Dadlwythwch (neu Creu) yn y cwarel iawn. Gweler y screenshot:
Nawr mae calendr yn cael ei greu mewn llyfr gwaith newydd. Gweler y screenshot:
Creu calendr misol gan VBA
Weithiau, bydd angen i chi greu calendr un mis ar gyfer mis penodol, fel Ionawr 2015. Efallai ei bod hi'n anodd dod o hyd i dempled calendr o'r fath gyda'r dull uchod. Yma, rwy'n cyflwyno cod VBA i'ch helpu chi i greu calendr misol penodol.
1. Gwasgwch Alt + F11 allweddi i agor Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch Mewnosod > Modiwlau, yna copïwch a gludwch islaw cod VBA i'r ffenestr.
VBA: Creu calendr misol.
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
Mae'r VBA yn dod o'r we hon https://support.microsoft.com/en-us/kb/150774
2. Gwasgwch F5 allweddol neu Run botwm, ac mae dialog wedi'i popio allan i'ch atgoffa i deipio'r mis penodol sydd ei angen arnoch i greu calendr, gweler y screenshot:
3. Cliciwch OK. Nawr mae calendr Ionawr 2015 yn cael ei greu yn y daflen weithredol.
Ond yn y dulliau uchod, mae yna rai cyfyngiadau, er enghraifft, os ydych chi am greu calendr rhwng Ionawr a Mai ar unwaith, mae angen i chi greu'r calendr mewn pum gwaith gyda mwy na dau ddull. Nawr rwy'n cyflwyno cyfleustodau defnyddiol i'w ddatrys yn gyflym ac yn hawdd
Yn hawdd creu calendr misol neu flynyddol yn ôl Perpetual Calendar
Calendr Perpetual yn un o gyfleustodau pwerus yn Kutools for Excel, a gall eich helpu i greu calendr misol neu flynyddol yn Excel ar unwaith.
Kutools for Excel, gyda mwy na 300 swyddogaethau defnyddiol, yn gwneud eich swyddi yn haws. | ||
1. Cliciwch Menter > Taflen Waith > Calendr Perpetual. gweler y screenshot:
2. Yn y dialog popping, nodwch hyd y mis rydych chi am greu'r calendr, a chlicio Creu. Gweler y screenshot:
Yna crëir llyfr gwaith newydd gyda phum taflen waith calendr. Gweler y screenshot:
Tip:
Os ydych chi am greu calendr mis penodol yn unig, mae angen i chi ddewis yr un mis yn y blychau testun From and To yn y dialog.
Cliciwch yma i wybod mwy am y Calendr Parhaol
Offer Cynhyrchiant Swyddfa Gorau
Supercharge Eich Sgiliau Excel gyda Kutools for Excel, a Phrofiad Effeithlonrwydd Fel Erioed Erioed o'r blaen. Kutools for Excel Yn cynnig dros 300 o nodweddion uwch i hybu cynhyrchiant ac arbed amser. Cliciwch Yma i Gael Y Nodwedd Sydd Ei Angen Y Mwyaf...
Office Tab Yn dod â rhyngwyneb Tabbed i Office, ac yn Gwneud Eich Gwaith yn Haws o lawer
- Galluogi golygu a darllen tabbed yn Word, Excel, PowerPoint, Cyhoeddwr, Mynediad, Visio a Phrosiect.
- Agor a chreu dogfennau lluosog mewn tabiau newydd o'r un ffenestr, yn hytrach nag mewn ffenestri newydd.
- Yn cynyddu eich cynhyrchiant 50%, ac yn lleihau cannoedd o gliciau llygoden i chi bob dydd!
