Reputation: 21
I have received
(1004) application defined or object defined error
while trying to export Email sender and subject from Outlook to Excel.
Sub GetFolderStats()
10 On Error GoTo Err
11 Dim objOutlook As Object
12 Dim objnSpace As Object
13 Dim objRootFolder As Object
14 Dim objInbox As Object
15 Dim mailSel As Outlook.Selection
16 Dim senderVal As String, titleVal As String
17 Dim path As String
18 Dim objExcel As Object
19 Dim objWorkbook As Object
20 Dim objSheet As Object
22 path = "example.xlsx"
23 Set objExcel = CreateObject("Excel.Application")
24 Set objWorkbook = objExcel.Workbooks.Open(path)
25 Set objSheet = objWorkbook.Sheets("Sheet1")
26 Set objOutlook = CreateObject("Outlook.Application")
27 Set objnSpace = objOutlook.GetNamespace("MAPI")
28 Set objRootFolder = objnSpace.Folders("RootFolder")
29 Set objInbox = objRootFolder.Folders("Inbox")
30 For Each Folder In objInbox.Folders
31 For Each i In Folder.Items
32 If (i.UnRead) Then
33 senderVal = i.SenderEmailAddress
34 titleVal = i.Subject
35 MsgBox senderVal + " " + titleVal
37 NextEmptyRow = objSheet.Range("A" & objExcel.Rows.Count).End(xlUp).Row + 1
38 objSheet.Range("A" & NextEmptyRow) = senderVal
39 objSheet.Range("B" & NextEmptyRow) = titleVal
51 objWorkbook.Save
41 End If
42 Next
43 Next
Err:
140 MsgBox "Value: " & dblRnd & vbCrLf & _
"Error Line: " & Erl & vbCrLf & _
"Error: (" & Err.Number & ") " & Err.Description, vbCritical
objWorkbook.Close
Stop
End Sub
Line 37 gives me the error. I have tried sheet.activate
, sheet.select
neither worked. Also I tried several solutions I found online, none of them worked.
Upvotes: 0
Views: 120
Reputation: 884
Could you please refer to this solution below:
Const xlExcel7 = 39
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = true
strPathExcel = "C:\Scripts\"
strFile = "DesktopLocation"
strYear = Right(Year(Date),2)
strDay = Day(Date)
strMonth = Month(Date)
strSaveFile = strPathExcel & strFile & "-" & strYear & _
"-" & strMonth & "-" & strDay & ".xls"
If objFso.FileExists(strSaveFile) Then
Set objWorkbook = objExcel.Workbooks.Open(strSaveFile)
Else
Set objWorkbook = objExcel.Workbooks.Add
objWorkbook.Sheets(1).Name = "Default"
objWorkbook.Sheets(2).Name = "Locked Down"
objWorkbook.Sheets(3).Name = "Other"
objWorkbook.SaveAs strSaveFile, xlExcel7
End If
arrSample = Array("a, b, c, d")
OutputExcel "Default", arrSample, objWorkbook.Sheets("Default")
OutputExcel "Locked Down", arrSample, objWorkbook.Sheets("Locked Down")
OutputExcel "Other", arrSample, objWorkbook.Sheets("Other")
objWorkbook.Save
objWorkbook.Close
objExcel.Quit
Sub OutputExcel(ByVal location, ByVal strArray, ByRef objSheet)
' Add data to the sheet
objSheet.Cells(1, 1) = location & now
' Save the workbook
objSheet.Parent.Save
End Sub
For more information, please see
Adding additional lines into an excel spreadsheet with VBscript
Upvotes: 1