收件人邮箱地址(VBA-004:收发人匹配邮箱地址)
Posted
篇首语:成功由大量的失误铸就。本文由小常识网(cha138.com)小编为大家整理,主要介绍了收件人邮箱地址(VBA-004:收发人匹配邮箱地址)相关的知识,希望对你有一定的参考价值。
收件人邮箱地址(VBA-004:收发人匹配邮箱地址)
一、用户需求
1、表格介绍:
《Item》表为ID、发件人姓名、收件人姓名、邮件标题、邮件内容
《NameList》表为ID、姓名、邮箱地址、邮箱签名
《Result》表为序号、发件人邮箱、收件人邮箱、邮件标题、邮件内容
2、需求:
将《Item》表中的内容复制到《Result》表中,并将发件人姓名、收件人姓名,邮件内容的[CC]/[To]修改为对应的发件人邮箱地址、收件人邮箱地址、收发人姓名。
二、需求分析
该需求主要是数据匹配方面,但中间的难点为一行多个姓名如何去匹配、邮件内容对应匹配,因此需采用数组和字典来解决该问题,具体步骤如下:
1、设计字典dict,装载《NameList》的Name和Email,用来实现匹配姓名对应的邮箱地址;
2、设计姓名替换email的方法,具体逻辑如下:
数组arr装载《Item》表;使用split方法将To和CC的多人切换为单人数组使用字典进行匹配
3、设计邮件内容自动更换方法,使用Replace方法替换关键字
代码实现
Sub OutputResult()' 输出结果 Worksheets("Result").Activate ActiveSheet.UsedRange.Offset(1).ClearContents Dim arr, arr2, arr3, arr4(), dict As Object Worksheets("NameList").Activate arr2 = Range("b2:c" & [c9999].End(xlUp).Row) Set dict = email(arr2) Worksheets("Items").Activate arr3 = Range(Cells(2, 1), Cells([e3000].End(xlUp).Row, 5)) For i = 1 To UBound(arr3, 1) arr3(i, 5) = ReplaceContent(arr3(i, 5), arr3(i, 2), arr3(i, 3)) arr3(i, 1) = i arr3(i, 2) = ReplaceEmail(arr3(i, 2), dict) arr3(i, 3) = ReplaceEmail(arr3(i, 3), dict) Next i Worksheets("Result").Activate [A2].Resize(UBound(arr3)) = WorksheetFunction.Index(arr3, 0, 1) [B2].Resize(UBound(arr3)) = WorksheetFunction.Index(arr3, 0, 2) [C2].Resize(UBound(arr3)) = WorksheetFunction.Index(arr3, 0, 3) [E2].Resize(UBound(arr3)) = WorksheetFunction.Index(arr3, 0, 5)End SubFunction email(arr)' 生成邮件字典' arr:类型,数组 Dim dict As Object Set dict = CreateObject("scripting.dictionary") For i = 1 To UBound(arr) dict(arr(i, 1)) = arr(i, 2) Next i Set email = dictEnd FunctionFunction ReplaceContent(s, em, cc)' 自动替换收发人的姓名 If InStr(s, "[To]") > 0 Then s = Replace(s, "[To]", em) Else s = Replace(s, "[CC]", cc) End If ReplaceContent = sEnd FunctionFunction ReplaceEmail(s, dict As Object)' 将姓名替换为email Dim arr, i%, s1 As String arr = Split(s, ";") If UBound(arr) = -1 Then s1 = "" ElseIf UBound(arr) = 0 Then s1 = dict.Item(s) Else For i = 0 To UBound(arr) If i = 0 Then s1 = dict.Item(arr(i)) Else s1 = s1 & ";" & dict.Item(arr(i)) End If Next i End If ReplaceEmail = s1End Function
相关参考
入职新公司的打工人,经常会被HR要求准准备个公司邮箱,方便日常工作沟通。那么公司邮箱是什么,公司邮箱怎么申请。现在很多职场人都在使用ZohoMail邮箱,邮箱是一种可以通过互联网收发信息并进行储存文件的服务,地址...
手机怎么注册申请个人邮箱(个人邮箱注册步骤?163邮箱地址怎么注册 注册个人邮箱有什么优势)
最近需要注册一个个人邮箱,问了周边朋友,给推荐了TOMVIP邮箱,那么如何注册邮箱地址呢?注册申请个人邮箱后有什么优势?邮箱地址怎么注册?邮箱地址是一个有身份属性的账号,所以一个符合自己喜欢的邮箱账号就会格外...
怎样申请email邮箱(邮箱格式怎么写地址,个人企业电子邮箱怎么注册申请)
有的人在第一次使用邮箱时,会遇到一个常见的问题:邮箱格式怎么写地址呢?其实,电子邮箱的格式都是有规律的,掌握好这个规律,无论是邮箱注册,还是给其他人写邮件,都会更加方便。那么,个人企业电子邮箱该怎么注...
1、打开邮箱。2、输入对方的用户名。3、输入对方的电子邮件服务器地址即可。4、电子邮箱是指在网络中,可以自动接收网络任何电子邮箱所发的电子邮件,并能存储规定大小的等多种格式的电子文件。5、电子邮件最大的特点...
...广播城”。2、通讯地址是指能在信封、邮寄物品、电子邮箱等一切通过邮政方式或互联网发送的邮件上,注明并接收的有效实际地址。3、通讯地址一般由地区名,街道名及门牌号码组成;一般大型网站就可以注册免费的个人邮...
1、一个完整的电子邮箱地址均由用户名和主机名两个部分组成,格式下:用户名@主机名.域名。2、中间用符号“@”(at)分开,左边为登录用户名,右边是完整的主机名,它由主机名与域名组成。3、电子邮箱是指在网络中,可以...
注册邮箱账号(个人邮箱注册哪家好、商务邮箱注册、邮件注册、如何注册电子邮箱)
刚工作的第一天,领导说要你自己准备商务个人邮箱,以后办公使用,一脸懵逼的你不知何去何从,领导是在刁难你吗?当然不是,那么商务个人邮箱是什么?如何注册申请,邮箱怎么登录呢?今天给大家科普一下!商务个人邮...
注册邮箱账号(个人邮箱注册哪家好、商务邮箱注册、邮件注册、如何注册电子邮箱)
刚工作的第一天,领导说要你自己准备商务个人邮箱,以后办公使用,一脸懵逼的你不知何去何从,领导是在刁难你吗?当然不是,那么商务个人邮箱是什么?如何注册申请,邮箱怎么登录呢?今天给大家科普一下!商务个人邮...
怎么注册个人邮箱账号(个人邮箱注册哪家好、商务邮箱注册、邮件注册、如何注册电子邮箱)
刚工作的第一天,领导说要你自己准备商务个人邮箱,以后办公使用,一脸懵逼的你不知何去何从,领导是在刁难你吗?当然不是,那么商务个人邮箱是什么?如何注册申请,邮箱怎么登录呢?今天给大家科普一下!商务个人邮...
注册163邮箱账号申请注册(邮箱申请流程,163VIP邮箱申请哪个好?)
邮箱申请流程,VIP邮箱申请哪个好?邮箱申请注册官网入口在哪儿?新的一年就要“兔”步青云,Tomvip邮箱可以助你一臂之力!邮箱申请注册分分钟搞定~邮箱申请注册官网入口方法一:搜索框中输入邮箱名称,点击搜索找到官...