我正在尝试在Excel中建立一个自动数据库,当用户在预期的到期日期之前注销设备时,该数据库将发送电子邮件。
我还希望实现一种功能,用户可以使用关键字'extend'答复电子邮件,以将其退出日期延长7天。
我的电子邮件发送正确。我想在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
子代码位于常规代码模块中