【问题标题】:VBA - Automation Error, server threw an exception, Lotus Notes Automation CodeVBA - 自动化错误,服务器抛出异常,Lotus Notes 自动化代码
【发布时间】:2016-11-03 21:34:53
【问题描述】:

我不知所措,因为我将这个程序写在不同的工作簿中,复制和粘贴多个对象并将它们通过电子邮件发送给 100 人的列表。我采用了该程序的“自动发送电子邮件部分”并运行了一段时间,但它似乎在通过电子邮件发送给 50 人的列表时抛出了大约一半的自动化错误。

错误代码是 “运行时错误‘-2147417851 (80010105)’: 自动化错误 服务器抛出异常。

代码如下:

Sub Send_HTML_Email()

Const ENC_IDENTITY_8BIT = 1729

'Send Lotus Notes email containing links to files on local computer

Dim NSession As Object      'NotesSession
Dim NDatabase As Object     'NotesDatabase
Dim NStream As Object       'NotesStream
Dim NDoc As Object          'NotesDocument
Dim NMIMEBody As Object     'NotesMIMEEntity
Dim SendTo As String
Dim subject As String
Dim HTML As String, HTMLbody As String
Dim wb As Workbook
Dim ws As Worksheet
Dim lstrow As Long, j As Long
Dim RecpName As String, candiName As String
Dim a As Hyperlink

Set wb = ThisWorkbook
Set ws = wb.Worksheets("Detail")

'  'Instantiate the Lotus Notes COM's Objects.


  lstrow = ws.Range("B" & Rows.Count).End(xlUp).Row

  For j = 3 To lstrow
 RecpName = ws.Cells(j, 2).Text
 candiName = ws.Cells(j, 1).Text

SendTo = RecpName
subject = wb.Worksheets("Email Settings").Range("B1").Text
Debug.Print subject

Set NSession = CreateObject("Notes.NotesSession")       'using Lotus Notes Automation Classes (OLE)
Set NDatabase = NSession.GetDatabase("", "")

If Not NDatabase.IsOpen Then NDatabase.OPENMAIL

Set NStream = NSession.CreateStream

HTMLbody = "<p>" & "Hi " & ws.Cells(j, 2).Text & "," & "</p>" & _
     vbCrLf & _
    "<p>" & Sheets("Email Settings").Cells(2, 2).Text & vbCrLf & _
      Sheets("Detail").Cells(j, 1).Text & "</p>" & vbCrLf & _
     "<p>" & Sheets("Email Settings").Cells(3, 2).Text & _
     "<br>" & Sheets("Email Settings").Cells(4, 2).Text & _
       "<br>" & Sheets("Email Settings").Cells(5, 2).Text & _
       "<br>" & Sheets("Email Settings").Cells(6, 2).Text & "</p>" & _
      "<p>" & Sheets("Email Settings").Cells(9, 2).Text & _
       "<br>" & Sheets("Email Settings").Cells(10, 2).Text & _
       "<br>" & Sheets("Email Settings").Cells(11, 2).Text & _
         "<br>" & Sheets("Email Settings").Cells(12, 2).Text & _
      "<br>" & Sheets("Email Settings").Cells(13, 2).Text & _
       "<br>" & Sheets("Email Settings").Cells(14, 2).Text & _
       "<br>" & Sheets("Email Settings").Cells(15, 2).Text & "</p>"

HTML = "<html>" & vbLf & _
        "<head>" & vbLf & _
        "<meta http-equiv=""Content-Type"" content=""text/html; charset=UTF-8""/>" & vbLf & _
        "</head>" & vbLf & _
        "<body>" & vbLf & _
        HTMLbody & _
        "</body>" & vbLf & _
        "</html>"

NSession.ConvertMime = False     'Don't convert MIME to rich text

Set NDoc = NDatabase.CreateDocument()

With NDoc
    .Form = "Memo"
    .subject = subject
    .SendTo = Split(SendTo, ",")

    Set NMIMEBody = .CreateMIMEEntity
    NStream.WriteText HTML
    NMIMEBody.SetContentFromText NStream, "text/html; charset=UTF-8", ENC_IDENTITY_8BIT

    .Send False
    .Save True, False, False
End With

NSession.ConvertMime = True      'Restore conversion

Set NDoc = Nothing
Set NSession = Nothing
     Next j
       MsgBox "The e-mail has successfully been created and distributed", vbInformation
        End Sub

【问题讨论】:

  • 这个问题从未解决,我最终意识到这个宏被我的经理笔记本电脑上的某些东西阻止了。希望明天对此进行调查,以进一步了解原因

标签: vba excel


【解决方案1】:

我相信我已经解决了这个问题,问题出现在循环的开头和循环的结尾。我需要在循环开始之前实例化 Lotus 对象,并在循环结束后清除它们。愚蠢的错误!

【讨论】:

  • 查看 OP 评论了解我在此 VBA 代码上的进展情况,它运行完美,但另一台笔记本电脑上的某些东西阻止了它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多