[英]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 是在一個常規的代碼模塊中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.