Как конвертировать мой процесс VBA для запуска в MA C? - PullRequest
1 голос
/ 04 апреля 2020

У меня есть макрос Excel, который отлично работает в windows (извлечение текста из электронной почты), но когда я запускаю его в своей ма c, он выдает мне ошибку , пропущенная библиотека Microsoft Outlook 16.0 Object Library .

Я думал о позднем связывании (я пытался, но я не смог это исправить)

Можете ли вы помочь мне исправить мой код, чтобы запустить его в моей ма c? спасибо заранее.

Код ниже:

Sub DetailExtraction() 'MacVersion
    On Error GoTo ErrHandler

    Application.ScreenUpdating = False
    ' SET Outlook APPLICATION OBJECT.
    Dim objOutlook As Object
    Set objOutlook = CreateObject("Outlook.Application")

    ' CREATE AND SET A NameSpace OBJECT.
    Dim objNSpace As Object
    ' THE GetNameSpace() METHOD WILL REPRESENT A SPECIFIED NAMESPACE.
    Set objNSpace = objOutlook.GetNamespace("MAPI")

    ' CREATE A FOLDER OBJECT.
    Dim myFolder As Object
    Set myFolder = objNSpace.GetDefaultFolder(olFolderInbox)

    Dim Item As Object
    Dim iRows, iCols As Integer
    iRows = 2

    ' LOOP THROUGH EACH ITEMS IN THE FOLDER.
    'For Each objItem In myFolder.Items
    ' LOOP THROUGH EACH ITEMS IN THE SELECTION.
    For Each objItem In ActiveExplorer.Selection

        If objItem.Class = olMail Then

            Dim objMail As Outlook.MailItem ' PROBLEM IS IN THIS LINE
            Set objMail = objItem

            Cells(iRows, 1) = objMail.SenderEmailAddress
            Cells(iRows, 2) = objMail.To
            Cells(iRows, 3) = objMail.Subject
            Cells(iRows, 4) = objMail.ReceivedTime
            Cells(iRows, 6) = objMail.Body
            Cells(iRows, 6).WrapText = False
            'MsgBox Prompt:=objMail.Body
       End If

       'WRAP UP FILE OFF
      ' Cells*i.WrapText = False
        ' SHOW OTHER PROPERTIES, IF YOU WISH.
        'Cells(iRows, 6) = objMail.Body
        'Cells(iRows, 5) = objMail.CC
        'Cells(iRows, 6) = objMail.BCC
        'Cells(iRows, 4) = objMail.Recipients(1)

        iRows = iRows + 1
    Next
    Set objMail = Nothing

    ' RELEASE.
    Set objOutlook = Nothing
    Set objNSpace = Nothing
    Set myFolder = Nothing
ErrHandler:
    Debug.Print Err.Description
Application.ScreenUpdating = True
MsgBox "Environments Details Extracted from the Selected Emails (" & iRows - 2 & ")"
End Sub
...