Home Error 287 on Send command after upgrade to Windows 10
Reply: 1

Error 287 on Send command after upgrade to Windows 10

Naaiif Published in 2017-12-06 10:59:06Z

I have Excel VBA code that generates an Outlook e-mail with an attachment.

This worked in Windows 8.1 but does not work in Windows 10. I have stepped through the macro, and it gets all the way to the end, generates the e-mail, then fails on the OutMail.Send command. The error is

Runtime error 287 - Application-defined or object-defined error

Here is the code.

Sub batchallocationemail()

'define email & pdf
Dim IsCreated As Boolean
Dim PdfFile As String, Title As String
Dim OutlApp As Object
Dim OutMail As Object

' print allocation Macro

'define worksheets
Dim ws As Worksheet
Set ws = Sheets("Caseworkers")
Dim ws2 As Worksheet
Set ws2 = Sheets("Allocation Sheet")
'define range
Dim NameRange As Range
Dim NameRange2 As Range
Dim x As Range
Dim z As Range
Set z = ws2.Range("B1")

Set NameRange = ws.Range("A1:C69")
Set NameRange2 = ws.Range("A2:A69")
Set NameRange3 = ws.Range("C2:C69")

'Selects name from list and pastes into allocation
NameRange.AutoFilter Field:=2, Criteria1:="In"
For Each x In NameRange2.SpecialCells(xlCellTypeVisible)
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        ' Define Title
        Title = Range("B1").Value
        ' Define PDF filename
        Title = "Allocation Sheet for " & Range("B1").Value
        PdfFile = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" & Title & ".pdf"
  ' Export activesheet as PDF
        With ActiveSheet
            .ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
        End With
' Use already open Outlook if possible
        On Error Resume Next
        Set OutlApp = GetObject(, "Outlook.Application")
        If Err Then
            Set OutlApp = CreateObject("Outlook.Application")
            IsCreated = True
        End If
        OutlApp.Visible = True
        On Error GoTo 0

' Prepare e-mail with PDF attachment
        Set OutMail = OutlApp.CreateItem(0)
        With OutMail

' Prepare e-mail
            OutMail.Subject = Title
            OutMail.To = x.Offset(0, 2).Value ' <-- Put email of the recipient here
            OutMail.CC = x.Offset(0, 3).Value ' <-- Put email of 'copy to' recipient here
            OutMail.Body = "Hello," & vbLf & vbLf _
            & "Please see your attached allocation sheet in PDF format." & vbLf & vbLf _
            & "Kind Regards," & vbLf _
            & Application.UserName & vbLf & vbLf
            OutMail.Attachments.Add PdfFile
        ' Try to send
            Application.Visible = True
        End With

    ' Quit Outlook if it was not already open
        If IsCreated Then OutlApp.Quit

    ' Release the memory of object variable
        Set OutMail = Nothing
        Set OutlApp = Nothing
    Next x

End Sub
Naaiif Reply to 2017-12-06 11:42:56Z

sorry about this, i think I have fixed it. I posted this earlier after looking through for hours last night but I seem to have got it. Instead of .Send i used Application.SendKeys "%s" which is a shortcut. This seems to send the e-mail properly.

You need to login account before you can post.

About| Privacy statement| Terms of Service| Advertising| Contact us| Help| Sitemap|
Processed in 0.383905 second(s) , Gzip On .

© 2016 Powered by mzan.com design MATCHINFO