当前位置:首页教育技巧excel技巧excel公式与函数

excel表格自动发邮件怎么发送

减小字体 增大字体 2025-01-28 13:18:33


1.如何通过excel自动发送邮件

方法/步骤1创建一个名字为“出货清单”Excel表单,先制作一个出货记录表格。

您可按需要自行制作,做成一行一条目。在正常内容最后加一行用于选择是否需要自动发送邮件。

2再增加一个名字为"清单"的Excel表单。用于列举各项常用重复内容。

例子中列举出货地址清单,联系人联系方式清单,还有料号清单。对各个清单定义范围。

这里以PNlist 命名来定义举一例,各位可按需定义。料号清单范围定义 =清单!$G$2:OFFSET(清单!$G$1,COUNTA(清单!$G:$G)-1,0) COUNTA(清单!$G:$G) 是用于计算G列有多少行有内容,即有多少个P/N清单。

例子计算结果为4OFFSET($G$1,4-1,0)计算结果即为$G$4.所以PNlist 就被成功定义为=清单!$G$2:$G$4定义地址清单:Addresslist =清单!$A$2:offset($A$1,counta($A:$A)-1,1)定义联系人清单:Namelist =清单!$D$2:OFFSET(清单!$D$1,COUNTA(清单!$D:$D)-1,1)通过定义的清单来校验数据, 从而保证误输入。通过下来选择也可提高效率。

新建一个名为“模板”的Excel表单,定义要通过邮件发送的内容的模板。后续会通过宏来拷贝模板,填充内容,调用outlook发送。

注意。 模板请放在第一行以下,因为第一行会用与拷贝发送内容过来做转制。

按如下图片步骤录制一个名为"shipment"的宏。宏的录制是录制单条操作的内容,操作内容根据自己需要按步骤录制。

多条循环操作需稍微加几句代码。下一步骤会介绍。

如下代码供参考:Sub shipment()' shipment arrangement'如下为录制内容Sheets("出货记录").SelectRange("B3:I3").SelectApplication.CutCopyMode = FalseSelection.CopySheets("邮件模板").SelectRange("A1").SelectSelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,SkipBlanks _:=False, Transpose:=FalseRange("G3:H12").SelectApplication.CutCopyMode = FalseSelection.CopyRange("A3").SelectSelection.Insert Shift:=xlDownRange("B3").SelectApplication.CutCopyMode = FalseActiveCell.FormulaR1C1 = "=R[-2]C[-1]"Range("B4").SelectActiveCell.FormulaR1C1 = "=R[-3]C[1]"Range("B5").SelectActiveCell.FormulaR1C1 = "=R[-4]C[2]"Range("B6").SelectActiveCell.FormulaR1C1 = "=R[-5]C"Range("B7").SelectActiveCell.FormulaR1C1 = "=R[-6]C[4]"Range("B8").SelectActiveCell.FormulaR1C1 = "=R[-7]C[5]"Range("B9").SelectActiveCell.FormulaR1C1 = "=R[-8]C[3]"Range("B10").SelectActiveCell.FormulaR1C1 = "=R[-9]C[6]"Range("B3:B10").SelectSelection.CopySelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,SkipBlanks _:=False, Transpose:=FalseRange("A1:H1").SelectApplication.CutCopyMode = FalseSelection.ClearContentsSheets("出货记录").SelectRange("J3").SelectActiveCell.FormulaR1C1 = "Closed"Range("A3:J3").SelectRange("J3").ActivateWith Selection.Interior.Pattern = xlSolid.PatternColorIndex = xlAutomatic.ThemeColor = xlThemeColorDark1.TintAndShade = -0.149998474074526.PatternTintAndShade = 0End With'如上为录制内容End Sub打开录制的宏添加循环代码。按图片步骤及语句在录制范围前后添加循环代码。

Dim i As IntegerDim j As IntegerDim g As IntegerApplication.ScreenUpdating = FalseSheets("出货记录").Selecti = 1j = Application.WorksheetFunction.CountA(Range("A:A")) + 1g = 0'变量i 用于循环,变量j用于判断有多少行需要循环,变量g 用于邮件发送时定义有多少行需要发送For i = 1 To jIf Range("j" & i).Value = "Y" Then'如下为录制内容-------------'如上为录制内容g = g + 1 ElseEnd IfNext i录制范围部分代码需按图片更新成变量。再添加邮件发送代码,其中有定义一个名为的 RangetoHTML()的函数。

' 以下语段用于发送邮件Sheets("出货记录").SelectIf g = "0" ThenMsgBox "No new shippment set to Y " Else g = 10 * g + 2 Dim OutApp As ObjectDim OutMail As ObjectDim MailBody As Range Sheets("邮件模板").SelectSet MailBody = Range("A3:B" & g) Set OutApp = CreateObject("Outlook.Application")Set OutMail = OutApp.CreateItem(olMailItem) On Error Resume NextWith OutMail.to = "Mama@aimama.com".CC = "".BCC = "".Subject = "Shipment Arrangement".BodyFormat = Outlook.OlBodyFormat.olFormatHTML.HTMLBody = RangetoHTML(MailBody).DisplayEnd WithOn Error GoTo 0End IfSheets("出货记录").Select Application.ScreenUpdating = TrueRangetoHTML()的函数 代码申明将如下代码拷贝粘帖到End Sub()之后Public Function RangetoHTML(rng As Range)Dim fso As ObjectDim ts As ObjectDim TempFile As StringDim TempWB As WorkbookTempFile = Environ$("temp") & "/" & Format(Now,。

评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

【免责声明】本站信息来自网友投稿及网络整理,内容仅供参考,如果有错误请反馈给我们及时更正,对文中内容的真实性和完整性本站不提供任何保证,不承但任何责任。
版权所有:学窍知识网 Copyright © 2011-2025 www.at317.com All Rights Reserved .