Closed. This question needs to be more focused。它当前不接受答案。












想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。

2年前关闭。



Improve this question





因此,我一直在尝试提出一个宏,以便通过电子表格发送带有附件的电子邮件。

例如:

mailto:[email protected]?subject=Sample12345

如果我在excel中使用上述字符串,它将提示我的默认电子邮件客户端使用示例电子邮件地址和示例主题行创建电子邮件。
我已经使用了一段时间,它可能是简单的字符串,但是当我可以在excel中操作它时,它非常有用。

在单元格中操作字符串的示例:=HYPERLINK(A1&A2&A3&A4&A5&A6)

我想将相同的概念变形,但是在宏中将其发送给具有不同电子邮件地址的多个人。

问题:

我将Lotus Notes Social Edition Home作为默认电子邮件客户端-9.0.1版

我想完成的示例:

Mailto: [email protected] (from a specific cell value in excel "=Sheet1!A1")
CC:( from a specific cell value in excel "=Sheet1!A2" )
Body: ( from a specific Range in excel "=Sheet2!A1:B24" )
Attachment : (from a specific cell value in excel "=Sheet1!A1") ....Value in Cell - " C:\Users\User1\Downloads\sampleexcelsheet.xlsm "


让我知道你的想法。

谢谢!。

最佳答案

这是发送电子邮件的更简单的方法。它对我有用,我有Lotus Notes 9,所以希望它对您的版本也有用。

Sub Send_Email_via_Lotus()
'Send an e-mail & attachment using Lotus Not(s)
'Original Code by Nate Oliver (NateO)
'Declare Variables for file and macro setup
'Dim AVal As Variant
Dim UserName As String, MailDbName As String, ccRecipient As String, Recipient As String
Dim Maildb As Object, MailDoc As Object, Session As Object
Dim email As String, bodyText As String, clientRef As String, bodyRng As Range, emailBody As String
Dim notesUIDoc As Object

With Application
    .ScreenUpdating = False
    .DisplayAlerts = False

    ' Open and locate current LOTUS NOTES User
    Set Session = CreateObject("Notes.NotesSession")
    UserName = Session.UserName
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
    Set Maildb = Session.GETDATABASE("", MailDbName)
    If Maildb.IsOpen = True Then
    Else
        Call Maildb.OPENMAIL
    End If

    Recipient = Sheets("Sheet1").Range("A1").Value
    ccRecipient = Sheets("Sheet1").Range("A2").Value
    Set bodyRng = Sheets("Sheet2").Range("A1:B24")

    Dim cel As Range
    For Each cel In bodyRng
        emailBody = emailBody & " " & cel.Value
    Next cel

    ' Create New Mail and Address Title Handlers
    Set MailDoc = Maildb.CreateDocument
    MailDoc.Form = "Memo"
    MailDoc.sendTo = Recipient
    MailDoc.CopyTo = ccRecipient
    MailDoc.Subject = "SUBJECT HERE"

    'Displays email message without sending; user needs to click Send
    Set workspace = CreateObject("Notes.NotesUIWorkspace")
    Set notesUIDoc = workspace.EditDocument(True, MailDoc)
    'Call notesUIDoc.FieldClear("Body") '' This line will clear the ENTIRE body, including signature.
    Call notesUIDoc.gotofield("Body") 'This should just Go to the body, keeping your signature.
    Call notesUIDoc.FieldAppendText("Body", emailBody)

    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set Session = Nothing
    Set EmbedObj1 = Nothing

    .ScreenUpdating = True
    .DisplayAlerts = True
    .EnableEvents = True
End With

'End If
Exit Sub

errorhandler1:
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj1 = Nothing
Application.EnableEvents = True

End Sub


请注意,缺少附件部分,我将继续搜索该部分,但这将使您入门,并了解如何使用变量设置正文,收件人等。(可能还有不必要的变量,我没有完全检查一下)。

注意:请检查For Each cel in bodyRng循环,因为我不太了解您要如何设置主体。

关于excel - 使用Lotus Notes Social Edition Home从Excel数据生成电子邮件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48083094/

10-13 05:01