簡體   English   中英

從 Outlook 運行 Excel 宏

[英]Running an Excel macro from Outlook

我正在嘗試在 Excel 中設置一個自動數據庫,當用戶在預期到期日之后退出設備時,它會發送一個 email。

我還想實現一個功能,用戶可以使用關鍵字“extend”回復 email,以將其注銷日期延長 7 天。

我的 email 發送正確。 我想在 Outlook 中創建一個腳本,將他們的回復鏈接到打開的 Excel 工作表。 Outlook 和 Excel 將在專用 PC 上同時打開。 我不想每次運行 Outlook 宏時都打開一個新的 Excel 文件。

這是 Outlook 宏:

Sub Exc_macro(Item As Outlook.MailItem)
Dim ExApp As Workbook
Dim gageID As String
Dim cap As String

If Left(Item.Body, 6) = "extend" Then   'Check for keyword in body
    gageID = Mid(Item.Subject, 23)  'Get equipment ID number
    Set ExApp = Excel.ActiveWorkbook
    Call ExApp.Application.Run("Module2.increase", gageID)
End If

End Sub

我想在這里將gageID參數傳遞給 Excel 宏:

Sub increase(gageID As String)
Set Rng = Range(Range("A2"), Range("A" & Rows.Count).End(xlUp))     
For Each cell In Rng
    If cell.Value = gageID Then
        cell.Offset(0, 9).Value = cell.Offset(0, 9).Value + 7
    End If
Next

End Sub

如何在 Outlook 中引用打開的工作簿並隨后運行 Excel 宏?

像這樣:

Sub Exc_macro(Item As Outlook.MailItem)

    Dim ExApp As Object
    Dim gageID As String
    Dim cap As String

    If Left(Item.Body, 6) = "extend" Then   'Check for keyword in body
        gageID = Mid(Item.Subject, 23)  'Get equipment ID number
        Set ExApp = GetObject(,"Excel.Application")
        ExApp.Run "'my ExcelWB.xlsm'!increase", gageID
    End If

End Sub

讓你的increase Sub 是在一個常規的代碼模塊中

http://www.rondebruin.nl/win/s9/win001.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM