如果 Excel 工作表中有生日信息列表,您可能希望将这些生日作为事件导入到 Outlook 日历中。 本文将指导您快速完成它。
从上一篇文章《如何将Excel中的生日信息批量导入到对应的Outlook联系人中》,您可以了解到将Excel中的生日信息添加到相关联系人中的方法。 与此类似,一些用户希望从 Excel 工作表中的数据创建 Outlook 生日事件。 针对这个问题,我们再公开一段VBA代码,帮助大家轻松搞定。
从 Excel 批量导入生日到 Outlook 日历
- 首先,打开特定的 Excel 文件。 我的示例 Excel 文件如下图所示。

- 然后,按“Alt + F11”触发 Excel VBA 编辑器。
- 接下来,在新的“Microsoft Visual Basic for Applications”窗口中,启用对“MS Outlook Object Library” 根据 “如何添加对象库rary VBA 中的引用“。
- 之后,将以下 VBA 代码复制到项目或模块中。
Sub ImportBirthdaysToCalendar()
Dim objWorksheet As Excel.Worksheet
Dim nLastRow As Integer
Dim objOutlookApp As Outlook.Application
Dim objCalendar As Outlook.Folder
Dim objBirthdayEvent As Outlook.AppointmentItem
Dim objRecurrencePattern As Outlook.RecurrencePattern
'Get the specific sheet
Set objWorksheet = ThisWorkbook.Sheets(1)
nLastRow = objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row
Set objOutlookApp = CreateObject("Outlook.Application")
Set objCalendar = objOutlookApp.Session.GetDefaultFolder(olFolderCalendar)
For nRow = 2 To nLastRow
Set objBirthdayEvent = objCalendar.Items.Add("IPM.Appointment")
'Create birthday events
With objBirthdayEvent
.Subject = objWorksheet.Range("A" & nRow) & Chr(39) & "s Birthday"
.AllDayEvent = True
.Start = objWorksheet.Range("B" & nRow)
Set objRecurrencePattern = .GetRecurrencePattern
objRecurrencePattern.RecurrenceType = olRecursYearly
.Save
End With
Next
End Sub
请注意: 1.根据您的情况更改具体表格。
- 根据自己的Excel文件更改相应的单元格范围。
- 最后直接按“F5”键运行这个宏。
- 宏完成后,您可以打开 Outlook 默认日历文件夹,您可以在其中看到所有新导入的生日事件,如下面的屏幕截图。
易受攻击的 Outlook PST 文件
与 Word 文档和 Excel 工作簿一样,实际上,Outlook PST 文件同样容易受到攻击。 多年来,许多用户都曾遭受过 Outlook 文件损坏的困扰。 在那种情况下,他们必须尝试棘手的 PST修复. 然而,通常,内置的修复工具——Scanpst 总是无法完成它。 因此,在这个课程中,非常需要一个更专业和一流的外部工具,例如 DataNumen Outlook Repair,它可以帮助您从损坏的 PST 文件中提取最大数据。
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 损坏的sql 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com

