Запуск макроса Excel из макроса Outlook? VBA - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь настроить автоматизированную базу данных в Excel, которая отправляет электронное письмо, когда у пользователя есть оборудование, вышедшее из работы после ожидаемой даты выполнения. Я также хочу реализовать функцию, с помощью которой пользователь может ответить на электронное письмо с ключевым словом «продлить», чтобы продлить срок его выхода на 7 дней.

У меня электронное письмо работает и отправляется правильно, но когда я пытаюсьсоздать сценарий в Outlook, который связывает их ответ с открытым листом Excel, у меня возникли трудности. Идея состоит в том, что Outlook и Excel будут открываться одновременно на выделенном ПК, поэтому я не хочу открывать новый файл Excel при каждом запуске макроса Outlook.

Вот макрос 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. Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 02 октября 2019

Примерно так:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...