Что должно быть в скобках в начале моего скрипта SaveAttachments? - PullRequest
0 голосов
/ 09 мая 2019

Следующий код сканирует мою папку «Входящие» и сохраняет любой файл с вложением .csv в папку на рабочем столе, а также в папку в моем Outlook.

Код прекрасно работает как VBA, нокогда я изменяю его на скрипт, чтобы я мог его запустить, как правило, он имеет ошибки.

Я знаю, что мне нужно иметь Outlook.MailItem в скобках, но я не уверен, что я должен иметь как почтувещь.

Sub SaveAttachments(myItem As Outlook.MailItem)
    Dim myOlapp         As Outlook.Application
    Dim myNameSpace     As Outlook.NameSpace
    Dim myFolder        As Outlook.MAPIFolder
    Dim myItem          As Outlook.MailItem
    Dim myAttachment    As Outlook.Attachment
    Dim avDate()        As String
    Dim vDate           As String
    Dim i               As Long
    Dim j               As Long

    Dim csvCount        As Long
    Dim myDestFolder    As Outlook.MAPIFolder

    Const myPath As String = "C:\Users\____\Desktop\Test Folder\"
    ReDim Preserve avDate(3)

    Set myOlapp = CreateObject("Outlook.Application")
    Set myNameSpace = Application.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
    i = 0
    j = 0


    Set myDestFolder = myFolder.Parent.Folders("CSV Emails")


    For i = myFolder.Items.Count To 1 Step -1
        If TypeName(myFolder.Items(i)) = "MailItem" Then
            Set myItem = myFolder.Items(i)
        End If
        csvCount = 0

        If myItem.UnRead = True Then
            avDate = Split(CStr(myItem.ReceivedTime), "/")
            vDate = Mid(avDate(2), 1, 4) & "-" & avDate(1) & "-" & avDate(0)

            If myItem.Attachments.Count <> 0 Then
                For Each myAttachment In myItem.Attachments
                    If LCase(Right(myAttachment.FileName, 3)) = "csv" Then
                        j = j + 1
                        csvCount = csvCount + 1
                        myAttachment.SaveAsFile ((myPath) & vDate & " - " & j & " - " & myAttachment.FileName)
                    End If
                Next myAttachment

                If csvCount > 0 Then
                    myItem.UnRead = False
                    myItem.Move myDestFolder
                End If
            End If
        End If
    Next i

SaveAttachments_exit:
  Set myAttachment = Nothing
  Set myItem = Nothing
  Set myNameSpace = Nothing
  Exit Sub

SaveAttachments_err:
  MsgBox "An unexpected error has occurred." _
    & vbCrLf & "Please note and report the following information." _
    & vbCrLf & "Macro Name: GetAttachments" _
    & vbCrLf & "Error Number: " & Err.Number _
    & vbCrLf & "Error Description: " & Err.Description _
    , vbCritical, "Error!"
  Resume SaveAttachments_exit


End Sub

Я просто хочу, чтобы скрипт запускался, когда открыт внешний вид.Я уже создал правило для этого, я просто пытаюсь исправить эту последнюю ошибку!

У меня также есть модуль VBA с именем SaveAttachments, если это имеет значение.

Спасибо запомощь!

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