暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Excel实战技巧106:创建交互式的日历

完美Excel 2021-07-23
943

学习Excel技术,关注微信公众号:

excelperfect


引子:本文的内容整理自chandoo.org,略有调整。主要是学习作者制作这样一个工作簿的思路和做法,以及运用的Excel技术技巧,当然这个工作簿也有一些局限,例如,在同一个地方只能安排连续的2天,这是需要进一步改进的地方。

 

Excel的常见用途之一是维护事件、安排或其他日历相关内容的列表。我们可以使用一些想象力以及条件格式、少量的公式和几行VBA代码,在Excel中创建一个流畅的交互式日历,使信息可视化。

 

首先,给出这个交互式日历的演示,如下图1所示。

1

 

1.在表中收集所有事件数据,如下图2所示。

2

 

2.创建日历

示例中,所有的事项都安排在20215月和6月,于是只需手动创建这两个月的日历,如下图3所示。

3

 

3.命名日历单元格区域

选择日历单元格区域,将其命名为“calendar”。

 

4.指定某单元格来识别所选择的日期

在工作簿中选择一个空单元格,将其命名为“selectedCell”,该单元格将用于识别用户选择的日期。

 

5.编写事件代码

当用户在“calendar”区域中选择某单元格时,代码将识别所选单元格。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Application.Intersect(Target, Range("calendar")) Is Nothing Then

      [selectedCell] = ActiveCell.Value

    End If

End Sub

 

6.创建公式,当选择有效日期时显示详细情况

每件事有与之相关的4个详细信息:标题、日期、地点和详细情况描述。当用户选择日历中的日期时,显示事情的详情。由于所选的日期在“selectedCell”中,我们使用VLOOKUPIFIFERROR来完成:

  • 如果所选日期中有事件,则获取单元格中事件标题,否则为空:=IFERROR(VLOOKUP(selectedCell,table_of_events, event_title_column, false),"")

  • 获取其余的事件详细信息,但如果日期没有事件,则将它们留空。

 

7.calendar工作表中,添加4个文本框并将其链接到单元格。

 

8.设置条件格式来高亮显示所选日期。

 

9.清理工作表并格式化,以便看起来更简洁清晰。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。

文章转载自完美Excel,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论