您的位置 首页 > 职场江湖

【邮件word附件怎么打开】王百川Get这招后,小米——Word邮件很容易处理,合并了其他附件。

小米作为大公司的HR,经常要发通知。这次小米的领导安迪说,小米要给公司2000名职员发电子邮件,每个职员的邮件附件都不一样。这可能会担心弄坏HR小米。

怎么办?总是不可能有一封脑袋。于是,小米给男朋友王百川打电话,讲述了经过。“你必须帮我解决。不然晚上你回去跪电子秤,让你跪五斤,你不要跪五斤一两斤”,——篇小编一脸懵逼。

王百川立刻想起了他的好朋友IT工程师乐高,乐高经过简单的思考,立刻提出了解决方案。方法如下:

1.准备工作

附件为txt文件,路径为c : \ users \ lei . Pei \ desktop \ word

附件截图

整理用户列表:用户的邮件地址及其附件地址(本文整理的文档为name.docx)

用户及其附件列表

2.邮件合并

Step1:使用现有列表3354选择name文件

Step2: [插入合并域],图片设置完成

Step3:在模板末尾插入分隔符。否则,只能发送一条消息

布局-分页符[下一节]

步骤4:单击“完成并合并”-“编辑单个文档”

Step5:在开启的文件中,按两下[this document]-[工具]-[参考]-[Microsoft outlook 16 . 0 object library]

注:outlook后面的数字取决于office版本。本文档是office 2016,因此显示了16.0

Step6:输入代码

注意:此代码不是原始代码,而是来自网络。局部有时政

Sub eMailMergeWithAttachments()

Dim docsource as document、doc maillist as document和doctempdoc as document

Dim rngDatarange As Range

Dim I As Long、j As Long

Dim lSectionsCount As Long

Dim bStarted As Boolean

Dim

oOutlookApp As Ou

Dim oItem As Ou

Dim oAccount As Ou

Dim sMySubject As String, sMessage As String, sTitle As String

'将当前文档设置为源文档(主文档)

Set docSource = ActiveDocument

'检查Outlook是不是打开了。如果未打开的话,就打开新的Outlook

On Error Resume Next

Set oOutlookApp = GetObject(, "Ou")

If Err <> 0 Then

Set oOutlookApp = CreateObject("Ou")

bStarted = True

End If

'打开保存有客人的邮件地址和需要发送的附件的路径的word文档。

With Dialogs(wdDialogFileOpen)

.Show

End With

'将该文档设置为客户邮件(附件)列表文档

Set docMaillist = ActiveDocument

'设置发送邮件的账户(账户必须已经在Outlook中设置好了)

'注意:如果你的Outlook版本低于2007,使用设置发送邮件的账户可能会导致错误,

'建议将下面的Set oAccount = oOu("someone@exam;)语句删除

Set oAccount = oOu("someone@exam;)

'显示一个输入框,询问并让用户输入邮件主题

sMessage = "请为要发送的邮件输入邮件主题。"

sTitle = "输入邮件主题"

sMySubject = InputBox(sMessage, sTitle)

'循环查找源文档中所有的节(每一节为一封邮件内容),以及循环查找邮件列表文档中所有的客户信息,

'以便用于插入到生成的邮件中

lSectionsCount = docSource.Sec

'当源文档中的节数仅有1时,lSectionsCount=0,将导致程序无法正常运行。

'为了保证当源文档只有1节时程序能正常运行,必须使lSectionsCount至少等于1

If lSectionsCount = 0 Then lSectionsCount = 1

For j = 1 To lSectionsCount

Set oItem = oOu(olMailItem)

With oItem

'注意:如果你的Outlook版本低于2007,使用设置发送邮件的账户可能会导致错误,

'建议将下面的.SendUsingAccount = oAccount语句删除

.SendUsingAccount = oAccount

.Subject = sMySubject

.Body = docSource.Sections(j - 1).Range.Text

Set rngDatarange = docMailli(1).Cell(j, 1).Range

rngDa = rngDa - 1

.To = rngDatarange

For i = 2 To docMailli(1).Columns.Count

Set rngDatarange = docMailli(1).Cell(j, i).Range

rngDa = rngDa - 1

.A Trim), olByValue, 1

Next i

.Send

End With

Set oItem = Nothing

Next j

docMailli wdDoNotSaveChanges

'如果Outlook是由该宏打开的,则关闭Outlook

If bStarted Then

oOu

End If

MsgBox "共发送了 " & lSectionsCount & " 封邮件。"

'清空Outlook实例

Set oOutlookApp = Nothing

End Sub

Step7:运行代码


运行代码的过程中,第一次弹出对话框,需要选择name文件,第二次需要输入主题


注意事项

  1. 正文的模板内容可以根据需求自定义格式

  2. 分页符是在邮件合并之前要插入

  3. 邮件合并完成后,注意不能有空白页。否则会出现一个用户收到多封空白邮件的情况

  4. 如果插入分页符后,发现有空白页。可以试试Ctrl+ Enter


雷哥帮王柏川搞定了Excel和小美,他们不胜感激。据说周末要请我吃十三香的小龙虾

预知后续职场故事,请听雷哥下次精彩分享

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

相关推荐