Outlook 2010 VBA가 잘못되었거나 규정되지 않은 참조가 잘못되었습니다
-
13-11-2019 - |
문제
나는 다른 일에 내가 일하는 무언가와 다른 접근 방식을 시험해 봅니다.직장에서 우리는 Outlook 2010을 사용하고 하루 종일 .xlsx 첨부 파일로 이메일을받습니다.Outlook에서 VBA를 사용하여 첨부 파일에 대한 들어오는 전자 메일을 확인한 다음 첨부 파일이> 0이면 첨부 파일을 테스트하고 스프레드 시트 인 경우 tobloutloklog 를 보낸 사람과 함께 테스트하는 방법을 알아 봅니다.주소록 정보.이것은 MS Access 외부의 VBA를 사용하여 실험하는 제 2 또는 3 일이며 구문을 알아 내려고 어둠 속에서 가난합니다.아래의 Outlook에서 아래 코드를 게시했습니다.나는 .subject 라인이 "잘못되었거나 규정되지 않은 참조" olinbox_itemadd (byval item) 섹션에 오류가 발생합니다.>.사전에 사과드립니다.도움이나 방향에 감사드립니다.
.Option Explicit
Private WithEvents InboxItems As Outlook.Items
Dim olns As NameSpace
Dim olInbox As MAPIFolder
Dim olItem As Object
Dim olAtmt As Attachment
Dim db As DAO.Database
Dim rst As DAO.Recordset
Const strdbPath = "\\FMI-FS\Users\sharp-c\Desktop\"
Const strdbName = "MSOutlook.accdb"
Const strTableName = "tblOutlookLog"
Private Sub Application_Startup()
Set olns = GetNamespace("MAPI")
Set olInbox = olns.GetDefaultFolder(olFolderInbox).Items
Set db = OpenDatabase(strdbPath & strdbName)
Set rst = db.OpenRecordset(strTableName, dbOpenDynaset)
End Sub
Private Sub Application_Quit()
On Error Resume Next
rst.Close
db.Close
Set olns = Nothing
End Sub
Private Sub olInbox_ItemAdd(ByVal Item As Object)
Dim olItem As Outlook.MailItem
Dim olAtmt As Outlook.Attachment
Dim strFoldername As String
Dim strFilename As String
Dim i As Integer
i = 0
For Each olItem In olInbox.Items
For Each olAtmt In olItem.Attachments
If olItem.olAtmt.Count > 0 Then
If Right$(olAtmt.FileName, 5) = ".xlsx" Then
strFilename = "\\FMI-FS\Users\sharp-c\Desktop\Test" & olAtmt.FileName
olAtmt.SaveAsFile strFilename
i = i + 1
rst.AddNew
rst!Subject = Left(.Subject, 255)
rst!Sender = .Sender
rst!FromAddress = .SenderEmailAddress
rst!Status = "Inbox"
rst!Logged = .ReceivedTime
rst!AttachmentPath = strFilename
Next
rst.Update
End If
Next olAtmt
Next olItem
Set olAtmt = Nothing
Set olItem = Nothing
End Sub
해결책
객체가있는 항목을 접두사에 접두어야합니다.
rst!Subject = Left(olItem.Subject, 255)
.
등등.어떤 단계에서 삭제했을지도 모릅니다.