首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用IBM Notes创建excel邮件合并

用IBM Notes创建excel邮件合并
EN

Stack Overflow用户
提问于 2016-06-27 22:33:38
回答 2查看 752关注 0票数 0

早上好,

我有一些代码,将创建一个电子邮件邮件合并在IBM Notes的基础上,在excel的列。我遇到的唯一麻烦是我想为A栏中的每个电子邮件地址创建单独的电子邮件。我也不知道如何让它为每个收件人附加一个特定的文件,文件的位置将在C栏中。有人能帮我吗?

代码语言:javascript
复制
Sub SendQuoteToEmail()

 Dim NSession As Object
 Dim NDatabase As Object
 Dim NUIWorkSpace As Object
 Dim NDoc As Object
 Dim NUIdoc As Object
 Dim WordApp As Object
 Dim subject As String
 Dim EmailAddress As Variant

 subject = Worksheets("Sheet1").Range("B2")
 Debug.Print subject

Set NSession = CreateObject("Notes.NotesSession")
Set NUIWorkSpace = CreateObject("Notes.NotesUIWorkspace")
Set NDatabase = NSession.GetDatabase("", "")
If Not NDatabase.IsOpen Then NDatabase.OPENMAIL

 For all Emai-Addresses
EmailAddress =                        Worksheets("Sheet1").Application.Transpose(Range("A2").Resize(Range("A" &                           Rows.Count).End(xlUp).Row).Value)
Set NDoc = NDatabase.CreateDocument

With NDoc
    .Form = "Memo" ' or .ReplaceItemValue("Form", "Memo")
    .SendTo = EmailAddress
    .subject = subject
End With
Set rtitem = NDoc.CreateRichTextItem("Body")
Call rt.AppendText(Worksheets("sheet1").Range("d2") & vbLf & vbLf)
Call rt.EmbedObject(1454, "", "c:filepath.doc")
Call NDoc.Save(True, False)
Next ' email-address
Set NDoc = NDatabase.CreateDocument

 With NDoc
.SendTo = EmailAddress
'.CopyTo = ""
.subject = subject

.body = Worksheets("sheet1").Range("d2") & vbLf & vbLf


.Save True, False
 End With

Set NUIdoc = NUIWorkSpace.EDITDocument(True, NDoc)
With NUIdoc

Set WordApp = Nothing
End With

Set NSession = Nothing
End Sub
EN

回答 2

Stack Overflow用户

发布于 2016-06-28 04:34:06

要附加文件,请查看NotesRichTextItem类的EmbedObject方法。

你的代码还有一些其他的问题。为字段赋值时,不应使用扩展表示法,请使用NotesDocument类的ReplaceItemValue方法存储值。Body字段是一个富文本字段,您应该对与该字段相关的任何内容使用NotesRichTextItem类,因此使用Appendtext和AddNewLine方法将内容写入该字段。这也允许您使用我上面提到的EmbeddObject方法来附加文件。

您也许可以在我的邮件通知类中找到一些有用的提示。我刚刚在http://blog.texasswede.com/updated-mailnotification-class-now-with-html-email-support-and-web-links/上发布了一个更新版本

希望它能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2016-06-28 18:17:54

这似乎是在Notes:send email to a specific Lotus Notes contacts using VBA中创建邮件的代码中更相关的部分

您希望在发送邮件之前在屏幕上打开它们,还是可以看不见它们?

更新:建议的代码

代码语言:javascript
复制
subject = Worksheets("Sheet1").Range("B2")
Debug.Print subject

Set NSession = CreateObject("Notes.NotesSession")
Set NUIWorkSpace = CreateObject("Notes.NotesUIWorkspace")
Set NDatabase = NSession.GetDatabase("", "")
If Not NDatabase.IsOpen Then NDatabase.OPENMAIL

For all email-addresses
    EmailAddress = Worksheets("Sheet1").Application.Transpose(Range("A2").Resize(Range("A" & Rows.Count).End(xlUp).Row).Value)
    Set NDoc = NDatabase.CreateDocument

    With NDoc
        .Form= "Memo" ' or .ReplaceItemValue("Form", "Memo")
        .SendTo = EmailAddress
        .subject = subject
    End With
    set rtitem= NDoc.CreateRichTextItem("Body")
    Call rt.AppendText(Worksheets("sheet1").Range("d2") & vbLf & vbLf)
    Call rt.EmbedObject(1454, "", "c:filepath.doc")
    Call NDoc.Save(True, False)
Next ' email-address

要处理的内容:循环、文件名、地址...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38056699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档