问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

怎样用excel中的宏定时自动发邮件

发布网友 发布时间:2022-04-23 09:06

我来回答

1个回答

热心网友 时间:2022-04-10 15:59

/步骤

1
创建名字货清单Excel表单先制作货记录表格
您按需要自行制作做行条目
内容加行用于选择否需要自发送邮件

2
再增加名字"清单"Excel表单用于列举各项用重复内容
例列举货址清单联系联系式清单料号清单

各清单定义范围PNlist 命名定义举例各位按需定义
料号清单范围定义 =清单!$G$2:OFFSET(清单!$G$1,COUNTA(清单!$G:$G)-1,0)

COUNTA(清单!$G:$G) 用于计算G列少行内容即少P/N清单 例计算结4
OFFSET($G$1,4-10)计算结即$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("货记录").Select
Range("B3:I3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("邮件模板").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("G3:H12").Select
Application.CutCopyMode = False
Selection.Copy
Range("A3").Select
Selection.Insert Shift:=xlDown
Range("B3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=R[-2]C[-1]"
Range("B4").Select
ActiveCell.FormulaR1C1 = "=R[-3]C[1]"
Range("B5").Select
ActiveCell.FormulaR1C1 = "=R[-4]C[2]"
Range("B6").Select
ActiveCell.FormulaR1C1 = "=R[-5]C"
Range("B7").Select
ActiveCell.FormulaR1C1 = "=R[-6]C[4]"
Range("B8").Select
ActiveCell.FormulaR1C1 = "=R[-7]C[5]"
Range("B9").Select
ActiveCell.FormulaR1C1 = "=R[-8]C[3]"
Range("B10").Select
ActiveCell.FormulaR1C1 = "=R[-9]C[6]"
Range("B3:B10").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Range("A1:H1").Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("货记录").Select
Range("J3").Select
ActiveCell.FormulaR1C1 = "Closed"
Range("A3:J3").Select
Range("J3").Activate
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.149998474074526
.PatternTintAndShade = 0
End With
'录制内容
End Sub

打录制宏添加循环代码
按图片步骤及语句录制范围前添加循环代码
Dim i As Integer
Dim j As Integer
Dim g As Integer
Application.ScreenUpdating = False
Sheets("货记录").Select
i = 1
j = Application.WorksheetFunction.CountA(Range("A:A")) + 1
g = 0
'变量i 用于循环变量j用于判断少行需要循环变量g 用于邮件发送定义少行需要发送
For i = 1 To j
If Range("j" & i).Value = "Y" Then
'录制内容
-------------
'录制内容
g = g + 1
Else
End If
Next i

录制范围部代码需按图片更新变量

再添加邮件发送代码其定义名 RangetoHTML()函数

' 语段用于发送邮件
Sheets("货记录").Select
If g = "0" Then
MsgBox "No new shippment set to Y "
Else
g = 10 * g + 2
Dim OutApp As Object
Dim OutMail As Object
Dim MailBody As Range
Sheets("邮件模板").Select
Set MailBody = Range("A3:B" & g)
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
On Error Resume Next
With OutMail
.to = "Mama@aimama.com"
.CC = ""
.BCC = ""
.Subject = "Shipment Arrangement"
.BodyFormat = Outlook.OlBodyFormat.olFormatHTML
.HTMLBody = RangetoHTML(MailBody)
.Display
End With
On Error GoTo 0
End If
Sheets("货记录").Select
Application.ScreenUpdating = True

RangetoHTML()函数 代码申明
代码拷贝粘帖End Sub()

Public Function RangetoHTML(rng As Range)
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook

TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With

Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.ReadAll
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center
x:publishsource=", _
"align=left x:publishsource=")
TempWB.Close savechanges:=False
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function

代码完 需创建按钮便调用宏即

增加条目应行内邮件通知列改"Y",点发送邮件按钮即弹邮件并货通知表单内更改状态
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
由人民检察院直接立案侦查的案件范围是怎样的 人民检察院直接立案侦查的条件一般都有哪些 这种功能叫什么名字?就是能在手机屏幕上开个小视频的功能 无时无刻的关心——GYENNOCUP 刚买的红米note手机充电的时候是橘红色的灯 充满了是显示绿色。我的手机... 听说王力宏转入了美国国籍了是吗? 王力宏为什么不入中国国籍?他为何加入美国籍? 全民k歌老是自己重唱上一句怎么事? 全民K歌怎么唱高分 全民K歌唱高分技巧 “因念都城放夜”的出处是哪里 最近能坐飞机吗? 能坐飞机吗?~ 怎么用word制作outlook自定义信纸 捷信三脚架 gt3531s 可以配套的中轴一共有几款? 70岁以上的老人可以坐飞机吗 英文邮箱的假期自动回复内容通常怎么写的? 你知道华阳那个捷信业务员的电话嘛?> 要坐飞机,适合坐飞机吗 邮箱自动回复内容应该怎么写比较合适?中文的 捷信GT2340L是用什么材料做的! 坐飞机时如果乘客少可以随便坐座位么? 天秤星亚马逊自动索评邮件工具好用吗? 请高手推荐一套三脚架和云台,打鸟用。 现在可以坐飞机吗 如何通过excel自动发送邮件 捷信GT2331三脚架好吗? 问下疫情期间坐飞机可以吗? 休假自动回复英文模板有哪些? 飞机上的座位可以随便坐吗?还是要根据自己票上的位置号坐? 捷信gt3532三脚架ls和lsv什么区别 波音737飞机还能不能坐? 如何新建Outlook电子邮件规则实现邮件自动 飞机票不是本人身份证可以坐吗? 为什么office outlook 2003 邮件保存时没有.oft格式的模板类型?我想做一个自动回复的模板。 飞机几岁不可以坐 亚马逊怎么用邮件索评?有好用的索评工具吗? 可以坐飞机吗? 怎样做一个固定的邮件模板,就是将我们公司的标志,电话什么的加在右下角,以后就一直能用这个模板发邮件 飞机可以串坐吗 多大年纪不能坐飞机 我的oppo应用分身打不开? 饿了么怎么追评 我的OPPO手机后台应用在哪里? 如何提升饿了么店铺的评分? 饿了么评分低怎么挽回 为什么我的oppo手机应用程序上有应用商店,而桌面上没有 在我的oppo手机 应用商店里买的字体为什么在QQ里显示不出来 怎样才能显示谢谢 为什么饿了么无法修改评价 梦见从床上起来穿鞋,发现鞋底和鞋子里面都有很多的蛆虫? 我的OPPO手机下载软件后安装不了怎么办?
  • 焦点

最新推荐

猜你喜欢

热门推荐