KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何在日历中搜索并替换日程的主题?

作者Siluvia修改日期

当您需要将部分日程主题统一替换为相同内容时,可以通过在日历中搜索并批量替换主题来实现这一目标。此外,在将数据导入 Outlook 后,也可以将主题字段中的“Copy”字样进行替换。本文将为您提供 VBA 代码,帮助您批量搜索并替换多个日程主题。请继续阅读,了解详细操作步骤。

使用 VBA 代码搜索并替换日程主题


使用 VBA 代码搜索并替换日程主题

本节将为您介绍如何通过 VBA 代码搜索并替换日程主题。

1. 首先,您需要在 Outlook 中将宏安全级别设置为低。

1)在 Outlook 2010 和 2013 中,依次点击“文件” > “选项”。在“Outlook 选项”对话框左侧,选择“信任中心”,然后点击“信任中心设置”按钮。

查找和替换主题-1

在“信任中心”对话框中,点击左侧菜单中的“宏设置”,在“宏设置”区域选择“启用所有宏”选项,并点击“确定”按钮。如下图所示:

查找和替换主题-2

2)在 Outlook 2007 中,请点击“工具” > “信任中心”。在“信任中心”对话框中,选择左侧栏的“宏设置”,然后勾选“对宏不进行安全检查”选项,最后点击“确定”按钮。

查找和替换主题-3

2. 按下“Alt”+“F11”组合键,即可打开“Microsoft Visual Basic for Applications”窗口。

3. 在“Microsoft Visual Basic for Applications”窗口中,双击展开“project 1” > “Microsoft Outlook Objects” > “ThisOutlookSession”,即可打开 VBA 编辑器。如下图所示:

查找和替换主题-4

4. 请将以下 VBA 代码复制并粘贴到 VBA 编辑器中,然后按下 “F5” 键运行。

VBA:查找和替换日程主题

Sub FindReplaceAppointment()
    Dim oApp As Outlook.Application
    Dim oCalFolder As Outlook.MAPIFolder
    Dim oAppt As Outlook.AppointmentItem
    Dim sOldText As String
    Dim sNewText As String
    Dim iCalChangedCount As Integer
    Set oApp = Outlook.Application
    MsgBox ("This script will perform a find/replace in the subject line of all appointments in a specified calendar.")
    sOldText = InputBox("What is the text string that you would like to replace?")
    sNewText = InputBox("With what would you like to replace it?")
    ' Check to be sure a Calendar folder was selected
    Do
    If Not (oCalFolder Is Nothing) Then
        If (oCalFolder.DefaultItemType = olAppointmentItem) Then Exit Do
    End If
    MsgBox ("Please select a calendar folder from the following list.")
    Set oCalFolder = Application.Session.PickFolder
    On Error GoTo ErrHandler:
    Loop Until oCalFolder.DefaultItemType = olAppointmentItem
    ' Loop through appointments in calendar, change text where necessary, keep count
    iCalChangedCount = 0
    For Each oAppt In oCalFolder.Items
        If InStr(oAppt.Subject, sOldText) <> 0 Then
            Debug.Print "Changed: " & oAppt.Subject & " - " & oAppt.Start
            oAppt.Subject = Replace(oAppt.Subject, sOldText, sNewText)
            oAppt.Save
            iCalChangedCount = iCalChangedCount + 1
        End If
    Next
    ' Display results and clear table
    MsgBox (iCalChangedCount & " appointments had text in their subjects changed from '" & sOldText & "' to '" & sNewText & "'.")
    Set oAppt = Nothing
    Set oCalFolder = Nothing
Exit Sub
ErrHandler:
    MsgBox ("Macro terminated.")
End Sub

5. 运行代码后,会弹出一个“Microsoft Outlook”对话框,请点击“确定”按钮。

查找和替换主题-5

6. 在第二个“Microsoft Outlook”对话框中,输入您想要替换的文本后,点击“确定”按钮。

查找和替换主题-6

7. 在第三个“Microsoft Outlook”对话框中,输入您希望替换的新文本,然后点击“确定”。

查找和替换主题-7

注意:如果您只想从指定日历的主题中移除所有“Copy”,请保持此框为空。

8. 在下方对话框中点击“确定”按钮。

查找和替换主题-8

9. 在“选择文件夹”对话框中,选择目标电子邮件帐户下的日历,然后点击“确定”按钮。如下图所示:

查找和替换主题-9

10. 随后将弹出对话框,提示替换已完成。请点击“确定”按钮。

查找和替换主题-10

11. 此时,所选日历中的所有主题文本都已成功替换为新内容。


最佳办公效率工具

体验全新 Kutools for Outlook,畅享 100+ 强大功能!立即点击下载,不容错过!

🤖KUTOOLS AI采用先进 AI 技术,轻松处理邮件,涵盖回复、摘要、优化、扩展、翻译及撰写等功能。

📧 邮件自动化自动答复(支持 POP 和 IMAP)/定时发送邮件/发送邮件时按规则自动抄送密送/自动转发(高级规则)/自动添加称呼/自动将多收件人邮件拆分为单独信息……

📨 邮件管理撤回邮件/按主题等条件拦截诈骗邮件/删除重复邮件/高级搜索/整合文件夹……

📁 附件增强批量保存/批量分离/批量压缩/自动保存/自动拆离/自动压缩……

🌟 界面魔法😊更多美观时尚表情/重要邮件到达时提醒您/最小化 Outlook 而不是直接关闭……

👍 一键精彩功能带附件全部答复/反钓鱼邮件/🕘显示发送者当前时间时区……

👩🏼‍🤝‍👩🏻 联系人与日历批量从选定邮件中提取添加联系人/将联系人组拆分为个人组/移除生日提醒……

在您的首选语言中畅享 Kutools —— 支持英语、西班牙语、德语、法语、中文等 40 多种语言!

一键解锁 Kutools for Outlook,告别等待,立即下载,让效率倍增!

kutools for outlook 功能1kutools for outlook 功能2

🚀 一键下载 — 即可获取全部 Office 加载项

强烈推荐:Kutools for Office(5 合 1)

一键下载五个安装包,即可同时获得 Kutools for Excel、Outlook、Word、PowerPointOffice Tab Pro立即点击下载!

  • 一键便捷:只需一次操作,即可下载全部五个安装包。
  • 🚀 轻松应对各类 Office 任务:随时按需安装所需插件,助您高效办公,不容错过!
  • 🧰 包含:Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint