Календарь Outlook Trigger Excel Рабочая книга Открыть - PullRequest
1 голос
/ 17 апреля 2020

Я ищу код VBA, срабатывающий при открытии напоминания о расписании Outlook, и затем открывающий книгу Excel. Я использовал приведенный ниже код из другого вопроса / ответа, однако я получаю

«Несоответствие типов»

, которое отображается в строке «GetTemp Item». Будет ли у кого-нибудь решение для меня?

enter image description here

Private Sub Application_Reminder(ByVal Item As Object)
    If TypeOf Item Is Outlook.TaskItem Then

        If Not Item.Subject = "US SANCTION REPORT RUN" Then
            Exit Sub
        End If

    End If

    GetTemp Item ' call sub
End Sub

Private Sub GetTemp(ByVal Item As TaskItem)
    Dim xlApp As Excel.Application
    Dim xlBook As Workbook

    Set xlApp = New Excel.Application
    Set xlBook = xlApp.Workbooks.Open("C:\Users\hha106\Desktop\RUN US SANCTION REPORT.xlsm") ' update with Excel name
    xlApp.Visible = True

    Set xlApp = Nothing
    Set xlBook = Nothing
End Sub

1 Ответ

0 голосов
/ 17 апреля 2020

Ошибка означает, что переменная Item, которую вы вводите здесь GetTemp Item, не совпадает с типом, объявленным здесь GetTemp(ByVal Item As TaskItem).

Попробуйте Private Sub GetTemp(ByVal Item As Outlook.TaskItem).

Также я не понимаю не понимаю, почему у вас Item в качестве параметра вашей GetTemp процедуры, потому что она никогда не используется в GetTemp. Так что Private Sub GetTemp(), а затем вызов GetTemp без Item тоже должен работать.


Но главная проблема в том, что если это утверждение

If TypeOf Item Is Outlook.TaskItem Then

не True затем он перейдет к End If и продолжит выполнение GetTemp Item. Таким образом, вам нужно поставить это перед End If, чтобы он работал только GetTemp, если Item на самом деле TaskItem. В противном случае он будет работать с любыми другими предметами, которые не TaskItem тоже.

Private Sub Application_Reminder(ByVal Item As Object)
    If TypeOf Item Is Outlook.TaskItem Then

        If Not Item.Subject = "US SANCTION REPORT RUN" Then
            Exit Sub
        End If

        GetTemp Item ' call sub
    End If   
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...