从microsoftexcel发送电子邮件只需要几个简单的脚本。将此功能添加到您的电子表格中,您就可以真正提高您在Excel中所能完成的工作。
我们已经介绍了很多优秀的Excel宏,它们可以完成VBA脚本所能完成的同样的事情,但是不需要编程知识。但是有很多高级的事情你只能用VBA来做,比如用你所有的PC信息创建一个电子表格报告。
喜欢把这个教程当作视频看吗?我们掩护你!
您可能希望从Microsoft Excel内部发送电子邮件的原因有很多。
也许你有每周更新文档或电子表格的员工,并且你希望收到一封电子邮件通知,告知何时完成这些更新。或者你可能有一个电子表格的联系人,你想发送一封电子邮件给所有的人在一次。
您可能认为从Excel编写电子邮件广播脚本会很复杂。事实并非如此。
本文中的技术将利用excelvba中长期存在的一个特性,即协作数据对象(CDO)。
CDO是Windows中使用的消息传递组件,从操作系统的早期版本就开始了。它以前被称为CDONTS,后来随着windows2000和XP的出现,被“windows2000的CDO”所取代。此组件已包含在Microsoft Word或Excel中的VBA安装中,可以使用。
使用该组件可以非常轻松地从带有VBA的Windows产品中发送电子邮件。在本例中,您将使用Excel中的CDO组件发送一封电子邮件,该电子邮件将传递特定Excel单元格的结果。
第一步是转到Excel开发人员选项卡。
在“开发人员”选项卡中,单击“控件”框中的“**”,然后选择一个命令按钮。
将其绘制到工作表中,然后通过单击“开发人员”功能区中的“宏”为其创建新宏。
单击“创建”按钮时,它将打开VBA编辑器。
通过导航到编辑器中的“工具”>;“引用”,添加对CDO库的引用。
向下滚动列表,直到找到Microsoft CDO for Windows 2000库。标记复选框并单击“确定”。
单击“确定”时,记下要粘贴脚本的函数的名称。你以后会需要的。
为此,首先需要创建邮件对象并设置发送电子邮件所需的所有字段。
请记住,虽然许多字段是可选的,但From和To字段是必需的。
Dim CDO_Mail As ObjectDim CDO_Config As ObjectDim SMTP_Config As VariantDim strSubject As StringDim strFrom As StringDim strTo As StringDim strCc As StringDim strBcc As StringDim strBody As StringstrSubject = "Results from Excel Spreadsheet"strFrom = "[email protected]"strTo = "[email protected]"strCc = ""strBcc = ""strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1))很酷的一点是,您可以创建任何字符串来定制完整的电子邮件消息,并将其分配给strBody变量。
通过使用字符串将任何Microsoft Excel工作表中的数据直接**到电子邮件中,将邮件的组件拼凑在一起,如上图所示。
代码的下一部分是将CDO配置为使用任何外部SMTP服务器发送电子邮件。
这个例子是通过Gmail进行的非SSL设置。CDO支持SSL,但这超出了本文的范围。如果您需要使用SSL,Github中的这个高级代码可以提供帮助。
Set CDO_Mail = CreateObject("CDO.Message")On Error GoTo Error_HandlingSet CDO_Config = CreateObject("CDO.Configuration")CDO_Config.Load -1Set SMTP_Config = CDO_Config.FieldsWith SMTP_Config .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/**tpserver") = "**tp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/**tpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" .Item("http://schemas.microsoft.com/cdo/configuration/**tpserverport") = 25 .Item("http://schemas.microsoft.com/cdo/configuration/**tpusessl") = True .UpdateEnd WithWith CDO_Mail Set .Configuration = CDO_ConfigEnd With既然您已经配置了到SMTP服务器的连接以发送电子邮件,那么您所要做的就是为CDO\u Mail对象填写适当的字段,并发出Send命令。
下面是如何做到这一点:
CDO_Mail.Subject = strSubjectCDO_Mail.From = strFromCDO_Mail.To = strToCDO_Mail.TextBody = strBodyCDO_Mail.CC = strCcCDO_Mail.BCC = strBccCDO_Mail.SendError_Handling:If Err.Description <> "" Then MsgBox Err.Description当您使用Outlook邮件对象时,不会出现任何弹出框或安全警报消息。
CDO只需将电子邮件放在一起,并利用您的SMTP服务器连接详细信息来触发消息。这是将电子邮件合并到Microsoft Word或Excel VBA脚本中的最简单方法。
要将命令按钮连接到此脚本,请进入“代码编辑器”并单击“工作表1”以查看该工作表的VBA代码。
键入在上面粘贴脚本的函数的名称。
以下是我在收件箱中收到的信息:
注意:如果您收到一个读取传输连接到服务器失败的错误,请确保在下面列出的代码行中输入了正确的用户名、密码、SMTP服务器和端口号以及SMTP配置。
只需按一下按钮就可以从Excel发送电子邮件,这一切都很好。但是,您可能希望定期使用此功能,在这种情况下,自动化流程是有意义的。
为此,需要对宏进行更改。转到visualbasic编辑器,复制并粘贴我们放在一起的全部代码。
接下来,从项目层次结构中选择ThisWorkbook。
从“代码”窗口顶部的两个下拉字段中,选择“工作簿”,然后从“方法”下拉列表中选择“打开”。
将上面的电子邮件脚本粘贴到私有子工作簿\u Open()中。
每当您打开Excel文件时,这将运行宏。
接下来,打开任务调度器。
您将使用此工具要求Windows定期自动打开电子表格,此时将启动宏并发送电子邮件。
选择创建基本任务。。。从“操作”菜单中,通过向导进行操作,直到到达“操作”屏幕。
选择“启动程序”,然后单击“下一步”。
使用“浏览”按钮查找Microsoft Excel在计算机上的位置,或将路径复制并粘贴到“程序/脚本”字段中。
然后,在“添加参数”字段中输入Microsoft Excel文档的路径。
完成向导后,您的日程安排就会就绪。
运行一个测试是值得的,方法是将操作安排在未来的几分钟内,然后在确认任务有效后修改它。
注意:您可能需要调整信任中心设置以确保宏正常运行。
为此,请打开电子表格并导航到“文件”>;“选项”>;“信任中心”。
从这里单击“信任中心设置”,然后在下一个屏幕上,将无线电拨号设置为从不显示有关被阻止内容的信息。
microsoftexcel是一个非常强大的工具,但是学习如何最大限度地利用它可能有点吓人。如果你想真正掌握这个软件,你需要熟悉VBA,这不是一个小任务。
然而,结果不言自明。有了一点VBA经验,你很快就能让microsoftexcel自动执行基本任务,让你有更多的时间专注于更紧迫的事情。
用VBA建立专业知识需要时间,但是如果你能坚持下去,你很快就会看到你的劳动成果。
一个很好的开始是我们的权威教程在Excel中使用VBA。一旦你完成了,这个简单的脚本发送电子邮件从Excel将感觉像孩子的游戏。
... 电子邮件收件箱,社交媒体帐户,甚至我们的设备本身——现在几乎所有重要的东西都是由某种密码保护的。如果您出于任何原因依赖Excel电子表格,那么您是否也应该在...
... 例如,如果您通过电子邮件进行营销,您可能会导入包含数百万电子邮件地址的CSV文件。唯一的问题是,如何管理一个包含这么多地址的电子表格?此外,如果有人发送的CSV已经超出了限制...
... 一旦您知道如何添加正确的引用,以及如何布局后台VBA代码的语法,那么将microsoftexcel数据集成到microsoftword中就非常容易了。 ...
...们的其他技巧和窍门,比如在Excel中创建下拉列表,了解如何在Excel公式中使用IF语句,以及使用Excel的Goal Seek功能计算数据。 ...
...创建复杂的Excel电子表格,然后不得不向同事解释它们是如何运作的?如果您对公式进行注释,则可以跳过此职责。 ...
...可以创建什么。一旦你掌握了它,你甚至可以从Excel发送电子邮件或将Excel数据集成到Word中。 ...