从Outlook运行Excel宏

问题描述 投票:0回答:1

我正在尝试在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宏?

excel vba outlook outlook-vba
1个回答
0
投票

喜欢这个:

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子代码位于常规代码模块中

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

© www.soinside.com 2019 - 2024. All rights reserved.