ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: lhdcxz

[分享] 把各个用户的信息发送到它的邮箱

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-11-12 14:56 | 显示全部楼层
本帖已被收录到知识树中,索引项:邮件应用开发
编辑和发送Lotus邮件的Excel/VBA脚本
作者:张志强, 发表于 2012年9月26日, 最后修改于 2012年9月26日


系列:办公自动化
查看该系列所有文章
以前发过一个编辑和发送Outlook邮件的Excel/VBA脚本。最近公司不让用Outlook,强制使用IBM Lotus Notes,我又写了一个编辑和发送Lotus邮件的VBA脚本。

这个脚本可以自动为你写好邮件收件人、标题、正文内容,并粘贴上附件,最后停留在待发送的状态。

具体使用方法参见以下代码前面的注释。
' 通过Lotus发送邮件
'
' SendMailWithLotus(vaRecipient, emailTitle, emailBody, attachments, sentOut, sheetRange)
'
' vaRecipient:接收人列表,为一个字符串;或者为字符串数组(下表从0开始),数组第一个元素
' 为接收人名单,第二个元素(若有)为抄送人名单,第三个元素(若有)为暗送人名单
' emailTitle:邮件标题
' emailBody:邮件正文,目前只支持文本
' attachments:为一个数组,数组每个元素都是各个附件的文件名(带路径)
' sentOut:是否自动发送。默认为不自动发送,Lotus会停留在待发送界面
' sheetRange:一个Excel.Range对象,Lotus会把该区域粘贴到邮件内容里。
'
' Author: zhang@zhiqiang.org, version: 2012-09-23
' url: http://zhiqiang.org/blog/it/send-email-with-lotus.html
Public Function SendMailWithLotus( _
        Optional vaRecipient As Variant = "zhang@zhiqiang.org", _
        Optional emailTitle As String = "Test VBA with Lotus", _
        Optional emailBody As String = "", Optional vaFiles As Variant, _
        Optional sentOut = False, Optional sheetRange = "")
    Dim noSession As Object, noDatabase As Object, noDocument As Object
    Dim noAttachment As Object, i As Long
    Dim richTextBody As Object, tempObject As Object, ws As Object
    Const EMBED_ATTACHMENT = 1454

    ' 如果需要手动选取附件,保留下面一行语句
    ' vaFiles = Application.GetOpenFilename(FileFilter:= _
    '   "Excel Filer (*.xls),*.xls", _
    '   Title:="Attach files for outgoing E_Mail", MultiSelect:=True)

    ' If Not IsArray(vaFiles) Then Exit Function

    Set noSession = CreateObject("Notes.NotesSession")
    Set ws = CreateObject("Notes.NotesUIWorkspace")

    Set noDatabase = noSession.GETDATABASE("", "")
    If noDatabase.IsOpen = False Then noDatabase.OPENMAIL
    Set noDocument = noDatabase.createdocument
    Set noAttachment = noDocument.CREATERICHTEXTITEM("attachment")
    Set richTextBody = noDocument.CREATERICHTEXTITEM("Body")
    If IsArray(vaFiles) Then
        With noAttachment
            For i = LBound(vaFiles) To UBound(vaFiles)
                .EmbedObject EMBED_ATTACHMENT, "", vaFiles(i)
            Next i
        End With
    End If

    With noDocument
        .Form = "Memo"
        If IsArray(vaRecipient) Then
            .sendto = vaRecipient(0)
            If UBound(vaRecipient) >= 1 Then
                .CopyTo = vaRecipient(1)
            End If
            If UBound(vaRecipient) >= 2 Then
                .BlindCopyTo = vaRecipient(2)
            End If
        Else
            .sendto = vaRecipient
        End If
        .subject = emailTitle
        .SAVEMESSAGEONSEND = True
        .PostedDate = Now() - 100
        '         .SEND 0, vaRecipient
    End With

    Dim uidoc As Object
    Set uidoc = ws.EDITDOCUMENT(True, noDocument)

     
    If IsObject(sheetRange) Then
        Call uidoc.GOTOFIELD("Body")
        sheetRange.Copy
        uidoc.Paste
    End If
   
    Call uidoc.GOTOFIELD("Body")
    uidoc.INSERTTEXT emailBody & vbCrLf & vbCrLf
   
    Call uidoc.Save
    noDocument.Save True, True
    If sentOut Then
        Call uidoc.Close
        noDocument.send True ' 这里不太好使,原因未知
    End If

   
    Set noDocument = Nothing
    Set noDatabase = Nothing
    Set noSession = Nothing
    Set ws = Nothing
    Set tempObject = Nothing
    Set uidoc = Nothing
    Set richTextBody = Nothing
    ' MsgBox "This file is send  OK", vbInformation
End Function
我对能发送表附件的方法比较感兴趣

TA的精华主题

TA的得分主题

发表于 2013-11-13 09:06 | 显示全部楼层
学习学习!!!!!!!!!!!!

TA的精华主题

TA的得分主题

发表于 2013-12-17 10:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-12-17 11:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-12-17 15:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
太牛了 太厉害了 是我想要的

TA的精华主题

TA的得分主题

发表于 2014-2-20 10:01 | 显示全部楼层
本帖最后由 dengguanxi 于 2014-2-20 10:05 编辑

fiel.jpg

请教老师:出现这个错误是什么原因?俺是office 2013,能否赐教一下?

错误

错误

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-20 10:05 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
dengguanxi 发表于 2014-2-20 10:01
请教老师:出现这个错误是什么原因?俺是office 2013,能否赐教一下?

可能需要改后缀为“.xlsx”

TA的精华主题

TA的得分主题

发表于 2014-2-20 18:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-2-21 09:34 | 显示全部楼层
lhdcxz 发表于 2014-2-20 10:05
可能需要改后缀为“.xlsx”

错误显示

错误显示


老师你好,把代码后缀名改成XLSX后仍然是这样,能否再赐教一下呢》



TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-21 09:44 | 显示全部楼层
本帖最后由 lhdcxz 于 2014-2-21 09:48 编辑
dengguanxi 发表于 2014-2-21 09:34
老师你好,把代码后缀名改成XLSX后仍然是这样,能否再赐教一下呢》


把你下载后更改了的附件发上来看看。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-23 16:02 , Processed in 0.041915 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表