我有一个 VBA 函数,它初始化一个 lotus notes 会话,创建一个文档并发送它。它还接受我附加到电子邮件正文的 NotesRichTextItem 作为可选参数。
但是,我收到错误消息“所有对象必须来自同一个会话”。如何将此 NotesRichTextItem “导入”到我的会话中?
添加了编辑代码
Sub SendLotusMail(SubjTxt As String, _
BodyTxt As String, _
EmailTo As String, _
EmailCC As String, _
AutoSend As Boolean, _
Attach As String, _
ReportTitle As String, _
Optional AppendToBody As NotesRichTextItem = Null)
On Error GoTo EH
NtSession.Initialize
OpenMailDb ReportTitle
Set NtDoc = Ntdb.CreateDocument
NtDoc.AppendItemValue "Form", "Memo"
NtDoc.AppendItemValue "SendTo", EmailTo
NtDoc.AppendItemValue "CopyTo", EmailCC
NtDoc.AppendItemValue "Subject", SubjTxt
Set NtBodyRT = NtDoc.CreateRichTextItem("Body")
NtDoc.AppendItemValue "Body", NtBodyRT
If Attach <> "" Then NtBodyRT.EmbedObject EMBED_ATTACHMENT, "", Attach, "Attachment"
NtBodyRT.AppendText BodyTxt
'This next line throws the error "All objects must be from the same session"
NtBodyRT.AppendRTItem AppendToBody
Edit-Solution 发现
我不太喜欢它,但我通过将 RichTextItem 对象、它的父 NotesDocument 和它的父 NotesSession 传递给此函数来解决所有这些问题。所以,现在我用 3 个可选对象而不是 1 个来调用这个过程。万岁。
Edit-New Solution found 好吧,以前的解决方案给我带来了问题,所以在我找到(或有人建议)解决方法之前,我只会对需要它的报告使用一些自定义电子邮件程序。它确实重复了一些代码,但并不显着。