2014-04-23 102 views
1

我已經構建了一個VBA項目,用於檢查特殊電子郵件上的收件箱,
提取附件並將​​附件保存在網絡上。
這一切都發生在用戶點擊按鈕時。展望2013收到郵件

我現在的問題是我想自動化這個。
所以我試圖重寫VBA項目,但
當電子郵件到達時,我總是得到錯誤信息
「Unzulässiger奧德nicht ausreichend defnierter Verweis」

(TR。不當,或沒有足夠的定義的參考)

我不知道該怎麼做,因此我試圖
在這裏得到答案。

附,你會發現這是擺在 'ThisOutlookSession' 代碼

Private WithEvents Items As Outlook.Items 
Private Sub Application_Startup() 

Dim objNs As Outlook.NameSpace 
Dim X As Integer 

Set objNs = GetNamespace("MAPI") 
Set Items = objNs.GetDefaultFolder(olFolderInbox).Items 
End Sub 

Private Sub Items_ItemAdd(ByVal Item As Object) 

Dim objNs As Outlook.NameSpace 
Dim strPath, strAuditPath, strSavPath, strFolderName As String 
Dim oAttachment As Outlook.Attachment 
Dim objTrash As Outlook.Folder 
Dim intAnlagen, intTotal, i As Integer 

Set objNs = GetNamespace("MAPI") 

On Error GoTo check_error 

If TypeOf Item Is Outlook.MailItem Then 
    Dim Msg As Outlook.MailItem 
    Set Msg = Item 

    If Msg.SenderEmailAddress = "[email protected]" Then 
     If Left(Msg.Subject, 8) = "QHST-Log" Then 

     strSavPath = "D:\Users\AS400_QHST_Logs\" 
     strPath = "T:\DOKUMENTE\AS400\QHST-Logs\" 
     strAuditPath = "D:\Dropbox\QHST-Log\" 

     strFolderName = Right(Msg.Subject, 4) 
      If Dir(strPath & strFolderName, vbDirectory) = vbNullString Then 'Prüfen ob Subfolder der Form JJJJ angelegt ist. 
       MkDir strPath & strFolderName 
       MkDir strAuditPath & strFolderName 
       MkDir strSavPath & strFolderName 
      End If 
      strPath = strPath & strFolderName & "\" 
      strAuditPath = strAuditPath & strFolderName & "\" 
      strSavPath = strSavPath & strFolderName & "\" 
      strFolderName = Mid(.Subject, 14, 2) 

      If Dir(strPath & strFolderName, vbDirectory) = vbNullString Then 
       MkDir strPath & strFolderName 
       MkDir strAuditPath & strFolderName 
       MkDir strSavPath & strFolderName 
      End If 
      strPath = strPath & strFolderName & "\" 
      strAuditPath = strAuditPath & strFolderName & "\" 
      strSavPath = strSavPath & strFolderName & "\" 

      intAnlagen = Msg.Attachments.Count 
      intTotal = intTotal + intAnlagen 
      'Debug.Print objNewMail & ": "; intanlagen 
      If intAnlagen > 0 Then 
       For i = 1 To intAnlagen 
        Set oAttachment = Msg.Attachments.Item(i) 
        oAttachment.SaveAsFile strPath & oAttachment.FileName 
        oAttachment.SaveAsFile strAuditPath & oAttachment.FileName 
       Next i 
      End If 
      Msg.UnRead = False 
      Msg.Delete 
     End If 
    End If 
End If 

check_error: 
Debug.Print Err.Number; Err.Description 
If Err.Number = 75 Then 
    Err.Clear 
    GoTo Back1: 
Else 
    Err.Raise Err.Number, Err.Description 
End If 

Err.Clear 
Resume Next 

End Sub 
+0

ich spreche kein Deutsch –

+0

嘗試將所有德語改爲英語,因爲英語更常見,因此更多人可以提供幫助。還有,如果你還沒有做到這一點錯誤發生在哪裏? – Alex

+0

@Alex - 新郵件到達語句時發生錯誤:Private Sub Items_ItemAdd(ByVal Item As Object) – neurieser

回答