如何在 Excel 中轻松创建专属日历?
Excel 日历可助您轻松追踪重要事件,例如某人入职新工作的日期或某项任务的交付时间,让关键日期一目了然、清晰明了。在本指南中,我将为您演示如何在 Excel 中创建月度与年度日历——既包括使用模板快速搭建的方法,也涵盖从零开始手动构建的方式,满足希望掌握更多自定义控制权的用户需求。无论用于工作安排还是个人规划,您都能时刻保持井然有序。

使用 Excel 日历模板创建年度日历
使用此方法时,您必须确保计算机已连接网络,以便下载日历模板。
1. 转到文件选项卡,单击左侧窗格中的新建按钮,然后从日历中选择建议的搜索。参见截图:

2. 选择您心仪的日历模板,双击即可轻松创建年度日历。

结果

使用 Kutools for Excel 快速创建月度或年度日历
Kutools for Excel 的永久日历工具可快速创建自定义的月历或年历,且每个月历都将包含在一个新工作表中。
安装 Kutools for Excel 后,请单击 KUTOOLS PLUS > 工作表 > 永久日历。在弹出的永久日历对话框中,请按以下步骤操作:
- 要创建月度日历,请通过从和到下拉列表指定日历月份,然后单击创建。

- 要创建年度日历,请通过从和到下拉列表指定日历年份,然后单击创建。

结果
- 月度日历:

- 年度日历:

使用 VBA 代码创建月度日历
使用以下 VBA 代码,您可快速创建月度日历。请按以下步骤操作:
1. 按下 Alt+F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。
2. 将弹出一个新窗口。单击插入 > 模块,然后在模块中输入以下代码:
Sub CalendarMaker()
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, _
Scenarios:=False
Application.ScreenUpdating = False
On Error GoTo MyErrorTrap
Range("a1:g14").Clear
MyInput = InputBox("Type in Month and year for Calendar ")
If MyInput = "" Then Exit Sub
StartDay = DateValue(MyInput)
If Day(StartDay) <> 1 Then
StartDay = DateValue(Month(StartDay) & "/1/" & _
Year(StartDay))
End If
Range("a1").NumberFormat = "mmmm yyyy"
With Range("a1:g1")
.HorizontalAlignment = xlCenterAcrossSelection
.VerticalAlignment = xlCenter
.Font.Size = 18
.Font.Bold = True
.RowHeight = 35
End With
With Range("a2:g2")
.ColumnWidth = 11
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = xlHorizontal
.Font.Size = 12
.Font.Bold = True
.RowHeight = 20
End With
Range("a2") = "Sunday"
Range("b2") = "Monday"
Range("c2") = "Tuesday"
Range("d2") = "Wednesday"
Range("e2") = "Thursday"
Range("f2") = "Friday"
Range("g2") = "Saturday"
With Range("a3:g8")
.HorizontalAlignment = xlRight
.VerticalAlignment = xlTop
.Font.Size = 18
.Font.Bold = True
.RowHeight = 21
End With
Range("a1").Value = Application.Text(MyInput, "mmmm yyyy")
DayofWeek = Weekday(StartDay)
CurYear = Year(StartDay)
CurMonth = Month(StartDay)
FinalDay = DateSerial(CurYear, CurMonth + 1, 1)
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
For Each cell In Range("a3:g8")
RowCell = cell.Row
ColCell = cell.Column
If cell.Column = 1 And cell.Row = 3 Then
ElseIf cell.Column <> 1 Then
If cell.Offset(0, -1).Value >= 1 Then
cell.Value = cell.Offset(0, -1).Value + 1
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
Exit For
End If
End If
ElseIf cell.Row > 3 And cell.Column = 1 Then
cell.Value = cell.Offset(-1, 6).Value + 1
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
Exit For
End If
End If
Next
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
.Locked = False
End With
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
ActiveWindow.DisplayGridlines = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveWindow.WindowState = xlMaximized
ActiveWindow.ScrollRow = 1
Application.ScreenUpdating = True
Exit Sub
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
3. 然后点击运行按钮或按 F5 键运行程序,此时将弹出提示框,您可在空白框中输入月份和年份。

结果

相关文章
如何在 Excel 中创建下拉日历(日期提取)?
在 Excel 工作表中使用下拉日历,您无需手动输入,即可轻松选择特定日期。本教程将教您如何通过 ActiveX 控件在 Excel 工作表中快速创建日历。
如何在单击 Excel 中的特定单元格时弹出日历?
本文介绍:在单击特定范围内的单元格后,即可弹出日历;选择日期后,系统将自动把所选日期填入该单元格。
如何从 Excel 工作表创建日历预约?
有时,您可能需要在日历中创建预约——是否尝试过先在 Excel 工作表中列出预约,再一键导入日历?如下图所示!
如何在 Excel 中创建动态月度日历?
本文将详细介绍如何在 Excel 中创建动态月度日历,助您轻松掌握这一实用技巧!
该最佳办公效率工具
Kutools for Excel —— 助您脱颖而出
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 超级 VLookup:多条件 | 多值 | 跨多工作表 | 模糊查找…… | |
| 高级下拉列表:简易下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列 | 移动列 | 切换隐藏列的可见性状态 |比较列以选择相同/不同单元格…… | |
| 特色功能:网格聚焦 | 设计视图 | 增强编辑栏 | 工作簿和表管理器|资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符……)| 50+ 图表 类型(甘特图……)| 40+ 实用公式(基于生日计算年龄……)| 19 插入工具(插入二维码,从路径插入图片……)| 12 转换工具(小写金额转大写,汇率转换……)| 7 合并和拆分工具(高级合并行,拆分 Excel 单元格……)|……以及更多 |
Kutools for Excel 拥有超过 300 项功能,确保您所需的功能触手可及……
Office Tab - 在 Microsoft Office(包括 Excel)中启用标签式阅读与编辑
- 在数十个已打开的文档间切换,仅需一秒!
- 每天为您省下数百次鼠标点击,轻松告别“鼠标手”。
- 在查看和编辑多个文档时,工作效率提升 50%。
- 为 Office(包括 Excel)带来高效标签页,体验如 Chrome、Edge 和 Firefox 般的流畅操作。