VBA больше не будет отправлять встречу в Outlook - PullRequest
0 голосов
/ 05 марта 2019

Моя программа просматривает таблицу Excel и вводит их в виде встречи в календарь Outlook с названием «Тест».Это работало нормально, но теперь я получаю ошибку 91 (переменная объекта или переменная блока не установлена).

Это происходит, когда определены венозные аспекты для назначения;Тема, начало, конец, тело и сохранение.

С тех пор я перезагрузился, но это ничего не должно было изменить.

Я подумал, не потому ли, что мои ссылки сброшены, но это тоже непохоже, проблема.

Option Explicit
Public oOutlook As Object
Public miCalendario As Object
Public objAppointment As Outlook.AppointmentItem
Private Sub CalExport_Click()

    Const olAppointmentItem = 1
    Dim OBjapt As Outlook.Namespace
    Dim strFolderName As String
    Dim OLAppointment As Object

    Set OBjapt = oOutlook.GetNamespace("MAPI")
    Set Calendar = Session.GetDefaultFolder(olFolderCalendar).Folders("Test")
    Set objAppointment = Calendar.items.Add(olAppointmentItem)

    Call StartOutlook

    B = ThisWorkbook.Sheets(2).Range("A65536").End(xlUp).Value
    For A = 0 To B
        If A = Range("A7").Value Then
            A = B
        End If

        Set OLAppointment.Subject = (ThisWorkbook.Sheets(2).Range("A65536").End(xlUp).Offset(X, 2).Value)
        SD = ThisWorkbook.Sheets(2).Range("A65536").End(xlUp).Offset(X, 3).Value
        ST = Format(ThisWorkbook.Sheets(2).Range("A65536").End(xlUp).Offset(X, 4).Value, "hh:mm:ss")
        SDT = FormatDateTime(SD & " " & ST)
        MsgBox SDT
        OLAppointment.Start = DateValue(SDT)

        ED = ThisWorkbook.Sheets(2).Range("A65536").End(xlUp).Offset(X, 5).Value
        ET = Format(ThisWorkbook.Sheets(2).Range("A65536").End(xlUp).Offset(X, 6).Value, "hh:mm:ss")
        EDT = FormatDateTime(ED & " " & ET)
        OLAppointment.End = DateValue(EDT)

        OLAppointment.Body = (ThisWorkbook.Sheets(2).Range("A65536").End(xlUp).Offset(X, 7).Value & vbNewLine & "Expected LAIR: " & ThisWorkbook.Sheets(2).Range("A65536").End(xlUp).Offset(X, 8).Value & "%")

        OLAppointment.Save

        X = X - 1
    Next A

    Set OLAppointment = Nothing

End Sub

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Приветствия Всем,

Просто нужно было использовать objAppointment, а не OLAppointment. Очень странно, что это работало раньше. Я часто нахожу VBA авто исправляет себя.

0 голосов
/ 05 марта 2019

Вы используете OLAppointment везде, но кажется, что эта переменная нигде не определена.Однако вы используете objAppointment.Я думаю, что вы должны изменить OLAppointment на objAppointment

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