Як створити щомісячний / річний календар в Excel?
Через деякий час вам потрібно створити певний календар місяця чи року в Excel, як ви можете швидко це вирішити? Цей підручник представляє трюки для швидкого створення щомісячного або річного календаря в Excel.
Створюйте щомісячний або щорічний календар за шаблоном Excel
Створіть щомісячний календар VBA
Легко створюйте щомісячний або щорічний календар за допомогою вічного календаря
Створюйте щомісячний або щорічний календар за шаблоном Excel
В Excel ви можете використовувати шаблон календаря для створення місячного або річного календаря.
1. У програмі Excel 2010/2013 натисніть філе > Новинка, в Excel 2007 натисніть Кнопка Office > Новинка, потім у правому розділі спливаючого вікна введіть календар в пошукову систему. Дивіться знімок екрана:
В Excel 2010/2013
В Excel 2007
2. прес Що натомість? Створіть віртуальну версію себе у , тоді у вікні відображаються кілька типів календарів. Виберіть потрібний тип календаря та натисніть Завантажити (або створити) на правій панелі. Дивіться знімок екрана:
Тепер календар створюється в новій книзі. Дивіться знімок екрана:
Створіть щомісячний календар VBA
Іноді вам потрібно створити одномісячний календар для зазначеного місяця, наприклад січня 2015 року. Знайти такий шаблон календаря із зазначеним вище способом може бути важко. Тут я представляю код VBA, який допоможе вам створити конкретний щомісячний календар.
1. прес Alt + F11 клавіші, щоб відкрити Microsoft Visual Basic для додатків вікна, натисніть Insert > Модулі, а потім скопіюйте та вставте нижче код VBA у вікно.
VBA: Створіть щомісячний календар.
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 надходить із цієї мережі https://support.microsoft.com/en-us/kb/150774
2. прес F5 ключ або прогін , і з'явиться діалогове вікно, щоб нагадати вам про введення конкретного місяця, необхідного для створення календаря, див. знімок екрана:
3. клацання OK. Тепер на активному аркуші створено календар січня 2015 року.
Але у вищезазначених методів є деякі обмеження, наприклад, якщо ви хочете створити календар з січня по травень одразу, вам потрібно створити календар у п’ять разів із зазначеними вище двома методами. Тепер я представляю зручну утиліту для її швидкого та легкого вирішення
Легко створюйте щомісячний або щорічний календар за допомогою вічного календаря
Безстроковий календар є однією з потужних утиліт в Kutools for Excel, і це може допомогти вам швидко створити щомісячний або річний календар в Excel одночасно.
Kutools for Excel, з більш ніж 300 зручні функції, полегшує вам роботу. | ||
1. клацання підприємство > Робочий аркуш > Безстроковий календар. див. скріншот:
2. У діалоговому вікні, що з’являється, вкажіть тривалість місяця, в який ви хочете створити календар, і натисніть Створювати. Дивіться знімок екрана:
Потім створюється нова книга з п’ятьма аркушами календаря. Дивіться знімок екрана:
Порада:
Якщо ви просто хочете створити певний календар місяця, вам просто потрібно вибрати той самий місяць у текстових полях Від і До в діалоговому вікні.
Натисніть тут, щоб дізнатись більше про вічний календар
Найкращі інструменти продуктивності офісу
Покращуйте свої навички Excel за допомогою Kutools for Excel, і відчуйте ефективність, як ніколи раніше. Kutools for Excel Пропонує понад 300 додаткових функцій для підвищення продуктивності та економії часу. Натисніть тут, щоб отримати функцію, яка вам найбільше потрібна...
Office Tab Надає інтерфейс із вкладками в Office і значно полегшує вашу роботу
- Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
- Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
- Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
