跳到主要內容

如何從Excel電子表格創建Outlook提醒?

本文討論的是基於Excel電子表格數據創建Outlook提醒。

Excel電子表格中帶有VBA代碼的Crete Outlook提醒


使用 VBA 代碼從 Excel 電子表格創建 Outlook 提醒

如果要從Excel創建Outlook提醒,請執行以下操作。

1.創建一個工作表,其中包含列標題和相應的提醒字段,如下圖所示。

備註: 為了 忙碌狀態 列數 2 表示該提醒將顯示為 在您的Outlook日曆中。 您可以將其更改為 1(暫定), 3(不在辦公室), 4(在其他地方工作), 或者 5(免費) 如你所需。

2。 按 其他 + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

3。 在裡面 Microsoft Visual Basic for Applications 窗口中,單擊 插入 > 模塊。 然後將下面的VBA代碼複製到“代碼”窗口中。

VBA代碼:從Excel電子表格創建Outlook提醒

Sub AddAppointments()
'Update by Extendoffice 20180608
    Dim I As Long
    Dim xRg As Range
    Dim xOutApp As Object
    Dim xOutItem As Object
    Set xOutApp = CreateObject("Outlook.Application")
    Set xRg = Range("A2:G2")
    For I = 1 To xRg.Rows.Count
        Set xOutItem = xOutApp.createitem(1)
        Debug.Print xRg.Cells(I, 1).Value
        xOutItem.Subject = xRg.Cells(I, 1).Value
        xOutItem.Location = xRg.Cells(I, 2).Value
        xOutItem.Start = xRg.Cells(I, 3).Value
        xOutItem.Duration = xRg.Cells(I, 4).Value
        If Trim(xRg.Cells(I, 5).Value) = "" Then
            xOutItem.BusyStatus = 2
        Else
            xOutItem.BusyStatus = xRg.Cells(I, 5).Value
        End If
        If xRg.Cells(I, 6).Value > 0 Then
            xOutItem.ReminderSet = True
            xOutItem.ReminderMinutesBeforeStart = xRg.Cells(I, 6).Value
        Else
            xOutItem.ReminderSet = False
        End If
        xOutItem.Body = xRg.Cells(I, 7).Value
        xOutItem.Save
        Set xOutItem = Nothing
    Next
    Set xOutApp = Nothing
End Sub

備註:在上面的代碼中, A2:G2 是您要基於其創建約會的數據范圍。

4。 按 F5 鍵或單擊“運行”按鈕以運行代碼。 然後,所有具有特定字段的約會將立即插入到Outlook的日曆中。

然後,您可以轉到Outlook的日曆以查看結果,請參見屏幕截圖: 


最佳辦公生產力工具

Kutools for Outlook - 超過 100 種強大的功能可增強您的 Outlook

🤖 人工智慧郵件助手: 具備人工智慧魔力的即時專業電子郵件——一鍵天才回覆、完美語調、多語言掌握。輕鬆改變電子郵件! ……

📧 電子郵件自動化: 外出(適用於 POP 和 IMAP)  /  安排發送電子郵件  /  發送電子郵件時按規則自動抄送/密件副本  /  自動轉送(進階規則)   /  自動添加問候語   /  自動將多收件者電子郵件拆分為單獨的訊息 ...

📨 電子郵件管理: 輕鬆回憶電子郵件  /  按主題和其他人阻止詐騙電子郵件  /  刪除重複的電子郵件  /  進階搜索  /  合併資料夾 ...

📁 附件專業版批量保存  /  批量分離  /  批量壓縮  /  自動保存   /  自動分離  /  自動壓縮 ...

🌟 介面魔法: 😊更多又漂亮又酷的表情符號   /  使用選項卡式視圖提高 Outlook 工作效率  /  最小化 Outlook 而不是關閉 ...

👍 一鍵奇蹟: 使用傳入附件回覆全部  /   反網路釣魚電子郵件  /  🕘顯示寄件者的時區 ...

👩🏼‍🤝‍👩🏻 通訊錄和行事曆: 從選定的電子郵件中大量新增聯絡人  /  將聯絡人群組拆分為各組  /  刪除生日提醒 ...

超過 100特點 等待您的探索! 按此處了解更多。

閱讀更多       免費下載      購買
 

 

Comments (66)
Rated 5 out of 5 · 2 ratings
This comment was minimized by the moderator on the site
How can I make this module run automatically when I close Excel? That way I can input data, and only have to close the file without having to manually run the code?
This comment was minimized by the moderator on the site
Hi JAIME GARCIA,
To make the AddAppointments subroutine run automatically when you close the Excel workbook, you can apply the following VBA code. This event is triggered right before the workbook is closed. Here's how you can adjust the code to run when the workbook is closed:
1. Open the Excel workbook where you want this functionality.
2. Press Alt + F11 to open the VBA editor.
3. In the Project Explorer on the left side, find ThisWorkbook under the VBAProject for your workbook.
4. Double-click ThisWorkbook to open its code module.
5. In the code window for ThisWorkbook, insert the following code.
6. Now you need to save this workbook as Excel Macro-Enabled Workbook (click File > Save As > choose Excel Macro-Enabled Workbook from Save as Type drop-down list > click Save).

Note: In this code, be sure to replace "SheetName" with the actual name of the worksheet containing your appointment data.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    AddAppointments
End Sub

Sub AddAppointments()
    ' Updated by Extendoffice 20180608
    Dim I As Long
    Dim xRg As Range
    Dim xOutApp As Object
    Dim xOutItem As Object
    Set xOutApp = CreateObject("Outlook.Application")
    Set xRg = ThisWorkbook.Sheets("SheetName").Range("A2:G2") ' Replace "SheetName" with the actual name of your sheet
    
    For I = 1 To xRg.Rows.Count
        Set xOutItem = xOutApp.createitem(1)
        xOutItem.Subject = xRg.Cells(I, 1).Value
        xOutItem.Location = xRg.Cells(I, 2).Value
        xOutItem.Start = xRg.Cells(I, 3).Value
        xOutItem.Duration = xRg.Cells(I, 4).Value
        xOutItem.BusyStatus = IIf(Trim(xRg.Cells(I, 5).Value) = "", 2, xRg.Cells(I, 5).Value)
        xOutItem.ReminderSet = xRg.Cells(I, 6).Value > 0
        xOutItem.ReminderMinutesBeforeStart = IIf(xOutItem.ReminderSet, xRg.Cells(I, 6).Value, 0)
        xOutItem.Body = xRg.Cells(I, 7).Value
        xOutItem.Save
        Set xOutItem = Nothing
    Next I
    Set xOutApp = Nothing
End Sub
This comment was minimized by the moderator on the site
Hello:

Thank you all for this amazing forum. I hope you will forgive me if this has already been asked, but is there a way to tweak the code to create an Outlook TASK instead of an appointment?

Please advise.

David
Rated 5 out of 5
This comment was minimized by the moderator on the site
How can I revise the code to include multiple rows?
This comment was minimized by the moderator on the site
HI Miller,

In this line Set xRg = Range("A2:G2") of the code, simply change the range "A2:G2" to a range containing multiple rows, such as "A2:G10"
This comment was minimized by the moderator on the site
This is a great tool. Was wondering if there is a way to add the appointments to a shared calendar, instead of my personal outlook calendar.
This comment was minimized by the moderator on the site
HI Crystal,
the code worked find, but I made some changes in Table & run the code again, now I have 2 reminders for same event, how to remove 1st reminder from my outlook calendar.
This comment was minimized by the moderator on the site
Hi Sushant Gawali,

The code only helps you to create reminders from Excel. If a duplicate reminder is created, you will need to go to the Outlook calendar to delete it manually. Sorry for the inconvenience.
This comment was minimized by the moderator on the site
If we share the excel with other user and they run this micro-enabled filed, will they have all the invites saved?
This comment was minimized by the moderator on the site
Hi,
If you save this Excel file as an Excel Macro-Enabled Workbook and send it to someone else, the invitation will be saved in their Outlook calendar after running the VBA code.
This comment was minimized by the moderator on the site
Excellent, thanks!
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hi Crystal,

Thank you for letting me know.
This comment was minimized by the moderator on the site
Thank you for posting your code, it works perfectly for me for adding to Outlook. Is there a way to add it to a Google Calendar instead?

Thanks.
This comment was minimized by the moderator on the site
Hi David Ramsay,
I can’t fix this problem. Sorry about that.
This comment was minimized by the moderator on the site
Hello,

For some reason it won’t pull all dates.
My range is A2:C14 and it seems to cherry pick dates. Any tips?
This comment was minimized by the moderator on the site
Hi Hailey,
You may need to attach a screenshot or a sample file to describe the problem you encountered more clearly.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations