vba put 语名 delphi 用什么语句_利用VBA发送EXCEL指定行内容的电子邮件

大家好,我们今日讲解"利用VBA发送EXCEL指定行内容的电子邮件",这节内容是"VBA信息获取与处理"教程中第五个专题"利用VBA发送电子邮件"的第二节。

第二节 利用VBA发送EXCEL指定行内容的电子邮件

在上一讲中我们讲了发送带附件的电子邮件,我们这讲的内容是讲解如何发送工作表的指定内容给各个邮箱,上一讲虽然也讲了发送工作表指定区域的选择,但这个区域要求是连续的,对于非连续的区域该如何处理呢?这讲我将给出一个可以利用的方案。如下图:

7015b78fc08301f12c830d8158045239.png

上述表格是"VBA职业教育网络公社"职工的工资名单,要把这些名单单独的发送给后面的邮箱地址,这些地址在示例中我给出的是一个值,大家在实际利用时可以设置。如何做到这项工作呢?

1 邮件发送工作表不连续区域内容的思路分析

为了实现我们刚才提到的目的,我们先把整个工资表放在一个工作表内,然后建立一个新的工作表,如下:

9384b8ccda470f73727d5eb5640a527d.png

然后我们将工资表内的内容按照需要拷贝到这个单独的工作表内,实现邮件的发送即可。代码同样可以借鉴上一讲的代码,这也是我的积木编程思想。

2 邮件发送工作表不连续区域内容的代码实现

为了完成上述的思路,我们可以利用下面的代码,大家要注意本专题的代码请参考:"005工作表.xlsm"程序文件,由于这部教程是VBA的提高篇,在讲解的时候我侧重的是思路分析,具体的实现大家要仔细的理解。

我们看下面的代码:

Sub myNZA()

Dim myArray As Variant

Sheets("Sheet3").Select

'关闭屏幕刷新及事件的反复触发

Application.ScreenUpdating = False

Application.EnableEvents = False

'将工资表预读到数组

myArray = Sheets("工资表").Range("a1").CurrentRegion

For i = 3 To UBound(myArray)

'将数组的值拆分后写到工作表中

Range("a3:i3") = Application.Index(myArray, i)

'选择要发送给职工的工资条内容

Range("A1:H3").Select

'放出标题注释

ActiveWorkbook.EnvelopeVisible = True

'邮件设置

With ActiveSheet.MailEnvelope

strText = myArray(i, 1) & "您好:" & vbCrLf & "以下是您" & _

myArray(i, 2) & "月份工资明细,请查收!"

'设置添加的可选介绍字段文本到电子邮件正文,标题设置注释

.Introduction = strText

With .Item

.To = myArray(i, 9)

.Subject = myArray(i, 2) & "月份工资明细"

.Send

End With

End With

Next

ActiveWorkbook.EnvelopeVisible = False

Application.ScreenUpdating = True

Application.EnableEvents = True

MsgBox "OK!"

End Sub

代码的截图:

21b213684724ea81035d0832eebeaaa6.png
ec7e8d399d39345b80ebcb4aa20ebad3.png

3 VBA代码实现过程的讲解

1) myArray = Sheets("工资表").Range("a1").CurrentRegion 这个语句是实现将工资表预存到数组中,从而实现更快的读取数据的效果。

2)Range("a3:i3") = Application.Index(myArray, i) 这行语句实现将数组中的值按行读到发送邮件的工作表中,注意上面语句的写法Index(myArray, i),不清楚的可以参考我的第三套教程《VBA数组与字典解决方案》中的知识点讲解

3)Range("A1:H3").Select 这行语句是邮件发送内容的设定,将在邮件的正文部分体现。

4).Subject = myArray(i, 2) & "月份工资明细" 这行语句是邮件题目的内容。

5)With ActiveSheet.MailEnvelope

strText = myArray(i, 1) & "您好:" & vbCrLf & "以下是您" & _

myArray(i, 2) & "月份工资明细,请查收!"

'设置添加的可选介绍字段文本到电子邮件正文,标题设置注释

.Introduction = strText

With .Item

.To = myArray(i, 9)

.Subject = myArray(i, 2) & "月份工资明细"

.Send

End With

End With

上面的这段代码完成了邮件的设置及发送。

6)For i = 3 To UBound(myArray)

……..

Next

以上语句是让for next的循环体部分多次循环以达到给每个人发送邮件的目的。

对于其他的语句的不不再详细的讲解了,在上一讲有涉及。

4 VBA代码实现效果

最后我们看看代码的实现效果,点击:

d410e87e2f1bb4930e1da419f71a3f9c.png

最后我们看工作表界面和邮件的接收界面:

工作表界面:

3515b812f3c67bff6af3a8311b4fb65a.png

邮件接收界面:

d7aea606f9ecb35d3c9899c0a8067687.png

以上完全达到了我们最初的要求,但要注意在发送邮件的时候OUTLOOK要处于打开的状态。

本节知识点回向:如何实现将工作表不连续区域内容的发送电子邮件?如何实现多个电子邮件的自动发送?

本专题参考程序文件:005工作表.XLSM

fd27777f314201de88306e9fb0a0404c.png

VBA是利用Office实现自己小型办公自动化的有效手段,这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!学习VBA是个过程,也需要经历一种枯燥的感觉,如太白诗云:众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

"水善利万物而不争",绵绵密密,微则无声,巨则汹涌。学习亦如此,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时再去做自欺欺人的言论。要努力提高自己,用一颗充满生机的心灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。茶,满也好,少也好,不要计较;浓也好,淡也好,其中自有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。在后疫情更加严峻的存量残杀世界中,为自己的生存进行知识的储备,特别是新知识的储备。学习时微而无声,利用时则巨则汹涌。

我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了六部VBA专门教程。

第一套:VBA代码解决方案 是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;

第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。

第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。

第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。

第六套教程:《VBA信息获取与处理》是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。如需要可以可以WeChat: NZ9668

学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。利人就是利己。这些教程也是为帮助大家起航,助上我自己之力,我的上述教程是我多的经验的传递,大家可以根据以上资料1,3,2,6,5或者是4,3,2,6,5的顺序逐渐深入的逐渐学习。

af7373c0e17833f2ba0e2c99d67beb7a.png

每一分收获都是成长的记录,怎无凭,正是这种执着,成就了朝霞的灿烂。最后将一阙词送给致力于VBA学习的朋友,让大家感受一下学习过程的枯燥与执着:

浮云掠过,暗语无声,

唯有清风,惊了梦中啼莺。

望星,疏移北斗,

奈将往事雁同行。

阡陌人,昏灯明暗,

忍顾长亭。

多少VBA人,

暗夜中,悄声寻梦,盼却天明。

怎无凭!

分享成果,随喜正能量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值