Tiwtorial Excel - Anfon e-byst o Excel
Fel arfer, rydym yn defnyddio cleientiaid e-bost fel Outlook, Gmail, ac ati i anfon e-byst. Ond, mae llawer o bobl yn storio data mewn llyfrau gwaith Excel ac mae angen iddynt anfon rhywfaint o ddata at eraill tra byddant yn gweithio gydag ef. Felly, mae angen iddynt anfon e-byst yn uniongyrchol o lyfr gwaith Excel, sy'n arbed amser gweithredu cleient e-bost. Bydd y tiwtorial cam wrth gam hwn yn dangos i chi sut i anfon e-byst o Excel o dan amodau gwahanol.
Nodyn: Cyn cymhwyso'r dulliau canlynol, mae angen i chi ffurfweddu cleient e-bost Outlook yn eich cyfrifiadur a'i osod fel eich cleient e-bost diofyn.
Tabl Cynnwys: [ Cuddio ]
1. Hanfodion anfon e-byst o Excel
Mae'r adran hon yn cyflwyno hanfodion anfon e-byst o Excel.
1.1 Anfon e-byst o Excel gyda swyddogaethau adeiledig Excel
Os ydych chi am anfon e-byst syml yn unig o Excel, gan gynnwys dim ond y meysydd I, Pwnc, Cc a chorff. Gall y swyddogaethau adeiledig yn Excel helpu.
1.1.1 Anfon e-bost oddi wrth Excel gyda fformiwla
Fel y dangosir yn y tabl isod, i anfon gwahanol negeseuon e-bost o Excel yn seiliedig ar y meysydd a roddir, gallwch ddefnyddio cyfeiriadau cell y meysydd a roddir i greu gwahanol fformiwlâu Hyperlink i'w wneud. Ar ôl creu'r hypergysylltiadau e-bost, gallwch glicio ar yr hyperddolen sydd ei angen arnoch i anfon e-bost yn awtomatig.
Nodyn: Os oes mwy nag un derbynnydd yn y meysydd To neu Cc, gwahanwch nhw gyda hanner colon.
Mae'r adran hon wedi'i rhannu'n bedair rhan i ddangos i chi'r camau i ychwanegu cyfeiriad e-bost, derbynnydd (derbynwyr Cc), llinell pwnc, a chorff testun ar wahân i'r fformiwla Hyperlink. Gwnewch fel a ganlyn.
Cystrawen a dadleuon y HYPERLINK swyddogaeth fel a ganlyn.
Cystrawen
HYPERLINK(link_location, [friendly_name])
Dadleuon
1.1.1.1 Ychwanegu cyfeiriad e-bost at fformiwla Hyperlink
Yma rydyn ni'n defnyddio " mailto:" fel rhan o'r fformiwla i ychwanegu derbynnydd e-bost. Yn yr enghraifft hon, mae cyfeiriad e-bost y derbynnydd cyntaf yng nghell B2, felly mae angen i ni ychwanegu "mailto:" a'i gyfeirio at gell B2.
"mailto:"&B2
1. Dewiswch gell i arddangos yr hyperddolen. Yn yr achos hwn, rwy'n dewis y gell F2.
2. Yna rhowch y fformiwla ganlynol i mewn iddo.
=HYPERLINK("mailto:"&B2)
Nodyn: Os gwasgwch y Rhowch allweddol, bydd hyperddolen yn cael ei greu fel y dangosir yn y screenshot isod. Pan fyddwch yn clicio ar y ddolen, bydd e-bost Outlook yn cael ei greu a bydd cyfeiriad e-bost y derbynnydd yn cael ei boblogi yn y maes To yn awtomatig.
Mae cyfeiriad e-bost y derbynnydd bellach yn cael ei ychwanegu at y fformiwla Hyperlink. Parhewch â'r camau canlynol i ychwanegu'r llinell bwnc, derbynnydd Cc, a chorff testun yn ôl yr angen.
1.1.1.2 Ychwanegu derbynnydd(wyr) Cc at fformiwla Hyperlink
I ychwanegu'r derbynnydd(wyr) Cc at y swyddogaeth Hyperlink, ychwanegwch "?cc=" fel rhan o'r fformiwla fel a ganlyn.
Dylai'r fformiwla yng nghell F2 fod fel a ganlyn:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2)
1.1.1.3 Ychwanegu llinell pwnc i fformiwla Hyperlink
I ychwanegu'r llinell bwnc i'r swyddogaeth Hyperlink, ychwanegwch "& subject=" fel rhan o'r fformiwla fel a ganlyn.
Dylai'r fformiwla yng nghell F2 nawr edrych fel y canlynol:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)
1.1.1.4 Ychwanegu testun corff gyda thoriadau llinell i fformiwla Hyperlink
Y cam olaf yw ychwanegu testun y corff i'r fformiwla Hyperlink. Fel y gwelwch yn yr enghraifft, mae dwy linell o destun yn E2 yn cael eu gwahanu gan doriad llinell, ac rydych chi am gadw'r toriad llinell yn y corff e-bost. A yw Outlook yn cydnabod y toriad llinell yn yr amgylchiad hwn? Gadewch i ni wirio amdano.
I ychwanegu testun y corff i'r fformiwla Hyperlink, mae angen i chi ychwanegu “&corff=” fel rhan o'r fformiwla fel a ganlyn.
Mae'r fformiwla yng nghell F2 bellach wedi'i harddangos fel a ganlyn:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)
Nodyn: Os gwasgwch y Rhowch allwedd a chliciwch ar y ddolen. Gallwch weld yn yr e-bost newydd bod y cynnwys yn y corff e-bost yn cael ei arddangos yn yr un llinell.
I arddangos y corff e-bost mewn llinellau ar wahân, mae angen i chi addasu cynnwys y gell trwy ychwanegu cod nod dychwelyd y cerbyd %0A i'r testun lle mae angen i chi fewnosod toriad llinell. Gweler y sgrinlun:
1.1.1.5 Nodwch y testun i'w ddangos ar gyfer yr hyperddolen
Yn y camau uchod, rydym wedi gorffen y ddadl Link_location gyda meysydd e-bost. Yma yn yr adran hon, rydyn ni'n mynd i orffen y ddadl nesaf [friendly_name].
Yn yr achos hwn, rwyf am i'r gell hyperddolen arddangos y testun fel "E-bostiwch at xx”, lle xx yw enw'r derbynnydd yn A2. Felly, dylid newid y fformiwla yn F2 i:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)
Gwasgwch y Rhowch allwedd i gael y canlyniad.
Dewiswch y gell fformiwla hon a llusgwch ei Trin AutoFill lawr i greu hypergysylltiadau e-bost eraill. Gweler y sgrinlun:
1.1.2 Anfon e-bost oddi wrth Excel gyda'r swyddogaeth Hyperlink
Ac eithrio defnyddio'r fformiwla Hyperlink uchod, gallwch chi greu hyperddolen e-bost â llaw gyda'r Mewnosod hyperlink swyddogaeth yn Excel. Mae'r adran hon yn mynd i ddangos y camau i chi.
1. De-gliciwch e-bost lle rydych chi am fewnosod hyperddolen, dewiswch Cyswllt o'r ddewislen clicio ar y dde.
2. Yn y popping up Mewnosod Hyperlink blwch deialog, mae angen i chi ffurfweddu fel a ganlyn.
Pan gliciwch ar yr hyperddolen, bydd e-bost Outlook yn cael ei greu gyda'r meysydd I, Pwnc a Chorff penodedig fel y dangosir yn y sgrin isod.
Nodiadau:
1.2 Anfon e-bost at dderbynwyr lluosog mewn celloedd gyda sgript VBA
Yn yr enghraifft uchod, gallwch weld cyfeiriadau e-bost lluosog yn cael eu harddangos mewn cell, wedi'u gwahanu gan hanner colon. Os oes gennych restr o gyfeiriadau e-bost fel y dangosir yn y sgrin isod ac eisiau anfon e-bost neu e-bost annibynnol at bob un ohonynt, gall y cod VBA canlynol wneud ffafr i chi.
1.2.1 Anfon e-bost at dderbynwyr lluosog mewn celloedd gyda sgript VBA
1. Yn y daflen waith sy'n cynnwys yr holl gyfeiriadau e-bost yr ydych am anfon yr e-bost atynt. Gwasgwch y Alt + F11 allweddi i agor y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr.
2. Yn y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch Mewnosod > Modiwl, ac yna gludwch y cod canlynol i mewn i'r Modiwl (Cod) ffenestr.
Cod VBA: Anfonwch e-bost at restr o gyfeiriadau e-bost
Sub sendmultiple()
'updateby Extendoffice 20220802
Dim xOTApp As Object
Dim xMItem As Object
Dim xCell As Range
Dim xRg As Range
Dim xEmailAddr As String
Dim xTxt As String
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xOTApp = CreateObject("Outlook.Application")
For Each xCell In xRg
If xCell.Value Like "*@*" Then
If xEmailAddr = "" Then
xEmailAddr = xCell.Value
Else
xEmailAddr = xEmailAddr & ";" & xCell.Value
End If
End If
Next
Set xMItem = xOTApp.CreateItem(0)
With xMItem
.To = xEmailAddr
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
End With
End Sub
3. Gwasgwch y F5 allwedd i redeg y cod a Kutools ar gyfer Excel blwch deialog pops up. Dewiswch y rhestr o gyfeiriadau e-bost a chliciwch OK.
Nodiadau:
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
Ar ôl rhedeg y cod, mae'r holl gyfeiriadau e-bost yn yr ystod a ddewiswyd yn cael eu harddangos ym maes To y ffenestr neges. Gweler y sgrinlun:
1.2.2 Anfon e-byst ar wahân at bob derbynnydd a restrir mewn celloedd gyda sgript VBA
Mae'r cod uchod yn ychwanegu pob cyfeiriad e-bost yn yr ystod a ddewiswyd i faes To y ffenestr neges. Os ydych chi am anfon e-byst i bob cyfeiriad e-bost a restrir mewn celloedd ar wahân heb adael iddynt weld cyfeiriadau e-bost ei gilydd, gallwch roi cynnig ar y sgript VBA followings.
1. Yn y daflen waith sy'n cynnwys yr holl gyfeiriadau e-bost yr ydych am anfon y negeseuon e-bost atynt. Gwasgwch y Alt + F11 allweddi i agorwch ffenestr Microsoft Visual Basic for Applications.
2. Yn y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch Mewnosod > Modiwlau, ac yna gludwch y cod canlynol i ffenestr y Modiwl (Cod).
Cod VBA: Anfonwch e-byst i bob cyfeiriad e-bost a restrir mewn celloedd ar wahân
Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
For Each xRgEach In xRg
xRgVal = xRgEach.Value
If xRgVal Like "?*@?*.?*" Then
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.To = xRgVal
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
'.Send
End With
End If
Next
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
3. Yna cliciwch offer > Cyfeiriadau. Yn y Cyfeiriadau - VBAProject blwch deialog, darganfyddwch a gwiriwch y Llyfrgell Gwrthrychau Microsoft Outlook 16.0 blwch ac yna cliciwch ar OK botwm i achub y newidiadau.
4. Gwasgwch y F5 allwedd i redeg y cod a Kutools ar gyfer Excel blwch deialog pops up. Dewiswch y rhestr o gyfeiriadau e-bost a chliciwch OK.
Nodiadau:
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
Yn yr enghraifft hon, mae chwe chyfeiriad e-bost yn yr ystod a ddewiswyd, felly bydd chwe ffenestr neges Outlook yn cael eu creu yn awtomatig gyda chyfeiriad e-bost ar wahân a restrir yn y maes To fel y dangosir yn y screenshot isod.
5. O'r diwedd, cliciwch anfon botwm i anfon yr e-bost fesul un.
2. Mewnosod atodiadau neu lofnod Outlook yn y negeseuon e-bost a anfonwyd o Excel (gyda sgriptiau VBA)
Mae'r adran hon yn mynd i ddangos i chi sut i fewnosod atodiadau neu lofnod rhagosodedig Outlook yn y negeseuon e-bost a anfonwyd o Excel.
2.1 Mewnosod atodiadau yn y negeseuon e-bost a anfonwyd gan Excel
Yma rydym yn disgrifio'r gwahanol achosion o fewnosod atodiadau, a gallwch ddewis y dull yn ôl eich anghenion. Yn yr adran hon, gallwch ddysgu sut (cliciwch ar unrhyw un o'r ddolen ganlynol i lywio i'r dull cyfatebol):
2.1.1 E-bostiwch ffeil arbennig fel atodiad
Gallwch gymhwyso'r cod VBA canlynol i e-bostio un neu fwy o ffeiliau mewn ffolder fel atodiadau o Excel.
1. Gwasgwch y Alt + F11 allweddi.
2. Yn yr agoriad Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch Mewnosod > Modiwlau. Yna gludwch y cod VBA canlynol i ffenestr y Modiwl (Cod).
Cod VBA: Ffeiliau e-bost mewn ffolder fel atodiadau o Excel
Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
Dim xStrFile As String
Dim xFilePath As String
Dim xFileDlg As FileDialog
Dim xFileDlgItem As Variant
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
If xFileDlg.Show = -1 Then
With xMailOut
.BodyFormat = olFormatRichText
.To = ""
.Subject = "test"
.HTMLBody = "test"
For Each xFileDlgItem In xFileDlg.SelectedItems
.Attachments.Add xFileDlgItem
Next xFileDlgItem
.Display
End With
End If
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
Nodiadau:
3. Yna cliciwch offer > Cyfeiriadau. Yn y Cyfeiriadau - VBAProject blwch deialog, darganfyddwch a gwiriwch y Llyfrgell Gwrthrychau Microsoft Outlook 16.0 blwch ac yna cliciwch ar OK botwm i achub y newidiadau.
4. Gwasgwch y F5 allwedd i redeg y cod, yna a Pori ffenestr yn ymddangos, dewiswch y ffeiliau y mae angen i chi eu hatodi yn yr e-bost, ac yna cliciwch OK.
Yna mae ffenestr neges yn ymddangos. Gallwch weld y ffeiliau a ddewiswyd yn cael eu harddangos fel atodiadau yn y maes Atodi.
2.1.2 E-bostiwch y daflen waith gyfredol fel atodiad
Os ydych chi am e-bostio'r daflen waith gyfredol fel atodiad gan Excel, gallwch chi gymhwyso'r sgript VBA yn yr adran hon.
1. Gwasgwch y Alt + F11 allweddi.
2. Yn yr agoriad Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch mewnosod > Modiwlau. Yna gludwch y cod VBA canlynol i mewn i'r Modiwl (Cod) ffenestr.
Cod VBA: E-bostiwch y daflen waith gyfredol fel atodiad
Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte features"
.Body = "Please check and read this document."
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub
Nodiadau:
3. Gwasgwch y F5 allweddol i redeg y cod, yna caiff y daflen waith gyfredol ei gadw fel llyfr gwaith Excel a'i fewnosod yn awtomatig mewn ffenestr neges fel atodiad. Gweler y sgrinlun:
Nodyn: Mae gan y llyfr gwaith atodedig sy'n cynnwys y daflen waith gyfredol yn unig yr un enw â'r llyfr gwaith gwreiddiol. Ac mae'r amser rydych chi'n rhedeg y cod yn cael ei ychwanegu at enw'r llyfr gwaith hefyd.
2.1.3 E-bostiwch y llyfr gwaith cyfredol fel atodiad
Ar ôl dysgu'r cod VBA i e-bostio'r daflen waith gyfredol fel atodiad gan Excel, yma rydym yn darparu sgript VBA arall i'ch helpu i e-bostio'r llyfr gwaith cyfan fel atodiad. Gwnewch fel a ganlyn.
1. Gwasgwch y Alt + F11 allweddi.
2. Yn yr agoriad Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch Mewnosod > Modiwl. Yna gludwch y cod VBA canlynol i ffenestr y Modiwl (Cod).
Cod VBA: E-bostiwch y llyfr gwaith cyfredol fel atodiad gan Excel
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
Nodiadau:
3. Gwasgwch y F5 allweddol i redeg y cod, yna mae'r llyfr gwaith cyfredol yn cael ei fewnosod i ffenestr neges fel atodiad yn awtomatig. Gweler y sgrinlun:
2.1.4 E-bostiwch y llyfr gwaith cyfan fel atodiad PDF
I'r rhan fwyaf o bobl, maent yn tueddu i arbed llyfr gwaith Excel fel ffeil PDF ac yna ei anfon fel atodiad i eraill. Yn yr adran hon, byddaf yn dangos ffordd i chi anfon e-byst yn uniongyrchol o Excel gyda'r llyfr gwaith agored cyfredol fel atodiad PDF heb orfod cadw'r llyfr gwaith â llaw fel ffeil PDF.
1. Gwasgwch y Alt + F11 allweddi.
2. Yn yr agoriad Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch Mewnosod > Modiwl. Yna gludwch y cod VBA canlynol i ffenestr y Modiwl (Cod).
Cod VBA: E-bostiwch y llyfr gwaith cyfan fel atodiad PDF
Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName
Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
FilePath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FilePath
.Display 'or use .Send
End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
Nodiadau:
3. Gwasgwch y F5 allwedd i redeg y cod. Yna caiff y llyfr gwaith cyfredol ei fewnosod yn awtomatig mewn ffenestr neges newydd fel atodiad ffeil PDF. Gweler y sgrinlun:
2.1.5 E-bostiwch y daflen waith gyfredol fel atodiad PDF
Er enghraifft, mae yna lyfr gwaith o'r enw “Gwerthiant misol”, ac rydych chi wedi gorffen tabl adroddiad gwerthu mewn taflen waith o'r enw “adroddiad gwerthu” ac eisiau anfon y daflen waith hon fel ffeil PDF at eich cydweithwyr. Gall y cod VBA canlynol wneud ffafr i chi.
1. Gwasgwch y Alt + F11 allweddi.
2. Yn yr agoriad Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch mewnosod > Modiwl. Yna gludwch y cod VBA canlynol i ffenestr y Modiwl (Cod).
Cod VBA: E-bostiwch y daflen waith gyfredol fel atodiad PDF
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
Nodiadau:
3. Gwasgwch y F5 allwedd i redeg y cod. Yna caiff y daflen waith gyfredol ei mewnosod yn awtomatig mewn ffenestr neges newydd fel atodiad ffeil PDF. Gweler y sgrinlun:
2.2 Mewnosod llofnod Outlook yn y negeseuon e-bost a anfonwyd o Excel
Cymerwch yr achos uchod fel enghraifft, rydych chi'n cymhwyso'r cod VBA uchod i anfon y daflen waith gyfredol fel atodiad ffeil PDF o Excel, ond ni ellir ychwanegu llofnod Outlook i'r ffenestr neges. I gadw llofnod rhagosodedig Outlook yn yr e-bost a anfonwyd gan Excel, bydd y dull canlynol yn helpu.
Rhestrir dau god VBA isod.
Cod VBA 1: Mae'r cod yn helpu i gadw llofnod Outlook.
Cod VBA 2: Mae'r cod yn helpu i e-bostio'r daflen waith gyfredol fel atodiad PDF.
Cod VBA 1: Cadw llofnod Outlook
.HTMLBody = "Email body" & "
" & .HTMLBody
Cod VBA 2: E-bostiwch y daflen waith gyfredol fel atodiad PDF
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
1. Fel arfer, mae angen i chi wasgu'r Alt + F11 allweddi i agor y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr.
2. Yn y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch Mewnosod > Modiwlau. Yna gludwch y cod VBA 2 uchod yn ffenestr y Modiwl (Cod).
3. Er mwyn cadw llofnod rhagosodedig Outlook yn yr e-bost a anfonwyd o Excel, mae angen i chi addasu'r cod VBA 2 fel a ganlyn:
Dyma'r cod cyflawn ar ôl ei addasu.
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.Display
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.HTMLBody = "Email body" & "
" & .HTMLBody
.Attachments.Add FileName
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
4. Gwasgwch y F5 allwedd i redeg y cod. Yna fe gewch ffenestr neges newydd gyda'r daflen waith gyfredol ynghlwm fel ffeil PDF, tra bydd llofnod rhagosodedig Outlook yn cael ei fewnosod ar ddiwedd y corff e-bost yn awtomatig.
3. Anfon e-byst o Excel yn awtomatig pan fodlonir amod (gyda sgriptiau VBA)
Yn yr enghreifftiau uchod, mae angen i chi redeg y cod â llaw i gyflawni'r dosbarthiad e-bost. Os ydych chi am sbarduno'r cod yn awtomatig pan fodlonir amod penodol, megis pan fydd cell yn cyrraedd gwerth penodol, pan fydd gwerth cell yn newid, pan gyrhaeddir dyddiad, ac ati, anfonir yr e-bost yn awtomatig. Mae'r adran hon yn rhestru'r amodau y bu defnyddwyr Excel yn aml yn chwilio amdanynt yn Google i'ch helpu i anfon e-byst o Excel yn awtomatig pan fodlonir amod penodol.
3.1 Anfon e-bost yn awtomatig pan fydd cell yn cyrraedd gwerth penodol
Fel y dangosir yn y sgrin isod, mae'n debyg bod gennych dabl gwerthu gyda chell D6 yn cynnwys cyfanswm y gwerthiant. Rydych chi eisiau anfon e-bost yn awtomatig at eich rheolwr yn seiliedig ar gyfanswm y gwerthiant, er enghraifft, creu neu anfon e-bost yn awtomatig pan fydd cyfanswm y gwerthiant yn fwy na 10000 ond os yw cyfanswm y gwerthiant yn hafal i neu'n llai na 10000, ni chymerir unrhyw gamau.
1. Yn y daflen waith yn cynnwys y tabl gwerthu, cliciwch ar y dde y tab taflen a chliciwch Gweld y cod o'r ddewislen clicio ar y dde.
2. Yn yr agoriad Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, gludwch y cod VBA canlynol yn y Dalen (Cod) ffenestr.
Cod VBA: Anfonwch e-bost yn awtomatig pan fydd cell yn cyrraedd gwerth penodol yn Excel
Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub
Nodiadau:
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
O hyn ymlaen, pan fydd y gwerth yng nghell D6 yn fwy na 10000, bydd e-bost yn cael ei greu fel y dangosir yn y sgrin isod.
3.2 Anfon e-bost yn awtomatig pan fydd gwerth cell yn newid
Fel y dangosir yn y screenshot isod, mae'n debyg eich bod yn derbyn llyfr gwaith sy'n cynnwys gwerthiannau misol mewn gwahanol daflenni gwaith a chyfanswm y gwerthiant mewn taflen waith. Mae angen i chi wirio cyfanswm y gwerthiant ac os yw cyfanswm y gwerthiant yn cael ei addasu, anfonwch y llyfr gwaith yn ôl at yr anfonwr a hysbysu'r anfonwr bod y gell wedi'i haddasu.
1. Yn y daflen waith yn cynnwys y tabl gwerthu, cliciwch ar y dde y tab taflen a chliciwch Gweld y cod o'r ddewislen clicio ar y dde.
2. Yn yr agoriad Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, gludwch y cod VBA canlynol yn y ffenestr Dalen (Cod).
Cod VBA: Anfonwch e-bost yn awtomatig pan fydd gwerth cell penodedig yn newid
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")
Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If
ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."
With xMailItem
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Nodiadau: Yn y cod,
O hyn ymlaen, pan fydd y gwerth yng nghell B14 yn newid, bydd neges Outlook yn cael ei chreu'n awtomatig fel y dangosir yn y screenshot isod.
3.3 Anfon e-bost yn awtomatig pan fydd llyfr gwaith yn cael ei gadw
Os oes gennych lyfr gwaith y mae angen ei rannu ag eraill ar ôl ei addasu, fel arfer mae angen i chi gadw'r llyfr gwaith, lansio'r cleient e-bost, creu e-bost newydd gyda'r llyfr gwaith hwn ynghlwm, llunio'r meysydd cyfatebol ac yna anfon yr e-bost. Bydd yr adran hon yn dangos dull i chi greu e-bost yn awtomatig bob tro pan fyddwch chi'n cadw'r llyfr gwaith. Gwnewch fel a ganlyn.
1. Gwasgwch y Alt + F11 allweddi i agor y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr.
2. Yn y ffenestr hon, cliciwch ddwywaith Llyfr Gwaith hwn yn y Prosiect cwarel, yna gludwch y cod VBA canlynol yn y Y Llyfr Gwaith hwn (Cod) ffenestr.
Cod VBA: Anfonwch e-bost yn awtomatig pan fydd llyfr gwaith yn cael ei gadw
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
Dim xOutApp As Object
Dim xMailItem As Object
Dim xName As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xName = ActiveWorkbook.FullName
With xMailItem
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "The workbook has been updated"
.Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
.Attachments.Add xName
.Display
'.send
End With
Set xMailItem = Nothing
Set xOutApp = Nothing
End Sub
Nodiadau: Yn y cod,
3. O hyn ymlaen, wrth arbed y llyfr gwaith trwy wasgu'r Ctrl + S bysellau neu glicio ar y Save botwm, bydd e-bost Outlook yn cael ei greu yn awtomatig. Gallwch weld bod y llyfr gwaith cyfredol wedi'i atodi fel atodiad a bod y meysydd wedi'u llenwi â'r cynnwys penodedig. Gweler y sgrinlun:
Awgrymiadau: Os ydych chi'n defnyddio'r llyfr gwaith hwn yn aml, dyma argymell eich bod chi'n cadw'r llyfr gwaith fel Llyfr Gwaith Macro-alluogedig Excel i arbed y sgript VBA i'w ddefnyddio yn y dyfodol. Mae'r camau fel a ganlyn.
3.4 Anfon e-bost yn awtomatig ar amser penodol
Gadewch i ni ddweud bod angen i chi anfon e-bost gyda llyfr gwaith aseiniad tasg at rywun bob bore Gwener am 9am, ac eisiau gwneud hyn yn awtomatig yn Excel heb orfod gweithredu'r cleient e-bost â llaw. Bydd yr adran hon yn dangos y dull i chi ei wneud.
1. Gwasgwch y Alt + F11 allweddi i agor y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr.
2. Yn y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch Mewnosod > Modiwl. Yna gludwch y cod VBA canlynol yn ffenestr y Modiwl.
Cod VBA1 : E-bostiwch y llyfr gwaith cyfredol fel atodiad o Excel
Sub Timer()
If Weekday(Date) = vbFriday Then
SendWorkBook
Application.OnTime TimeValue("09:00:00"), "Timer"
Else
Application.OnTime TimeValue("09:00:00"), "Timer"
End If
End Sub
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
3. Yn y ffenestr hon, cliciwch ddwywaith Llyfr Gwaith hwn yn y Prosiect cwarel, yna gludwch y cod VBA canlynol yn y Y Llyfr Gwaith hwn (Cod) ffenestr.
Cod VBA 2: Anfon e-bost yn awtomatig ar amser penodol
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub
Nodiadau:
4. Arbedwch y codau ac yna arbedwch y llyfr gwaith fel llyfr gwaith macro-alluogi Excel fel a ganlyn.
5. Agorwch eich llyfr gwaith macro-alluogi sydd wedi'i gadw, yna bydd e-bost yn cael ei greu neu ei anfon yn awtomatig pan fydd y diwrnod a'r amser yn cyrraedd.
4. Pynciau ychwanegol
Mae'r adran hon yn casglu pynciau eraill y gallech ddod ar eu traws wrth anfon e-byst gan Excel.
4.1 E-bostiwch ystod o gelloedd o Excel (gyda sgript VBA)
Gan dybio bod tabl gwerthu misol mewn taflen waith Excel fel y dangosir yn y sgrin isod, ac mae angen i chi anfon y tabl gwerthu misol hwn at eraill fel cynnwys corff e-bost neu fel atodiad yn uniongyrchol. Yma rydym yn darparu dau ddull i chi ei wneud.
4.1.1 E-bostiwch ystod fel rhan o gynnwys y corff o Excel
Gallwch redeg y cod VBA canlynol i anfon ystod o gelloedd fel rhan o gynnwys y corff e-bost o Excel
1. Gwasgwch y Alt + F11 allweddi i agor y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr.
2. Yn y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch offer > Cyfeiriadau. Ac yna gwiriwch y Llyfrgell Gwrthrychau Microsoft Outlook 16.0 blwch a chlicio OK yn y Cyfeiriadau - VBAProject blwch deialog.
3. Cliciwch Mewnosod > Modiwlau, yna gludwch y cod VBA canlynol yn y Modiwl (Cod) ffenestr.
Cod VBA: Anfonwch ystod o gelloedd fel rhan o gynnwys y corff e-bost o Excel
Sub SendARangeofCells()
'Updated by Extendoffice 20220809
Dim xRg As Range
Dim I, J As Long
Dim xAddress As String
Dim xMailOut As Object
Dim xOutApp As Object
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Subject = "test"
.To = ""
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = RangetoHTML(xRg)
.Display
'.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
' The following VBA script is cited from this page:
' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
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"
'Copy the range and create a new workbook to past the data in
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
'Publish the sheet to a htm file
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
'Read all data from the htm file into RangetoHTML
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=")
'Close TempWB
TempWB.Close savechanges:=False
'Delete the htm file we used in this function
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function
Nodiadau: Yn y cod,
4. Gwasgwch y F5 allwedd i redeg y cod. Yn y popped i fyny Kutools ar gyfer Excel blwch deialog, dewiswch yr ystod o gelloedd y mae angen i chi eu hanfon fel rhan o gynnwys corff e-bost, yna cliciwch OK. Gweler y screenshot:
Yna bydd e-bost Outlook yn cael ei greu yn awtomatig. Gallwch weld bod yr ystod a ddewisoch yn y daflen waith yn cael ei fewnosod yn y corff e-bost. Gweler y sgrinlun:
4.1.2 E-bostiwch ystod fel atodiad o Excel
Os oes angen e-bostio ystod o gelloedd mewn taflen waith fel atodiad o Excel. Gallwch roi cynnig ar y cod VBA canlynol.
1. Gwasgwch y Alt + F11 allweddi.
2. Yn yr agoriad Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch Mewnosod > Modiwlau. Yna gludwch y cod VBA canlynol yn y Modiwl (Cod) ffenestr.
Cod VBA: E-bostiwch ystod fel atodiad o Excel
Sub SendRange()
'Update 20220809
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "Monthly sales for 2021"
.Body = "Hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Nodiadau:
3. Gwasgwch y F5 allwedd i redeg y cod. Yn y popped i fyny Kutools ar gyfer Excel blwch deialog, dewiswch yr ystod o gelloedd y mae angen i chi eu hanfon fel atodiad mewn e-bost, yna cliciwch OK. Gweler y screenshot:
Yna bydd e-bost Outlook yn cael ei greu yn awtomatig. Ac mae'r ystod o gelloedd a ddewisoch yn y daflen waith yn cael ei gadw fel llyfr gwaith Excel a'i atodi yn y ffenestr Neges. Gweler y sgrinlun:
4.2 Anfon e-byst pan fo botwm yn cael ei glicio yn Excel
Os oes angen i chi glicio botwm gorchymyn i sbarduno macro ar gyfer anfon e-bost gan Excel, er enghraifft, anfonwch y llyfr gwaith cyfredol fel atodiad i eraill trwy glicio botwm gorchymyn yn y daflen waith. Gallwch ddilyn y camau fel a ganlyn i'w gyflawni.
1. Cliciwch Datblygwr > Mewnosod > Botwm Gorchymyn (Rheoli ActiveX). Yna tynnwch botwm gorchymyn yn y daflen waith.
Awgrymiadau: Os oes gennych chi botwm gorchymyn yn barod, sgipiwch y cam hwn.
2. Gwasgwch y Alt + F11 allweddi i agor y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr. Yn y ffenestr, cliciwch Mewnosod > Modiwl, yna gludwch y cod VBA (y cod a ddefnyddir i e-bostio'r llyfr gwaith cyfredol fel atodiad o Excel) yn ffenestr y Modiwl (Cod).
Nodyn: Dyma enw'r macro a grewyd gennych yng ngham 2 Anfon LlyfrGwaith.
3. Gwasgwch y Alt + Q allweddi i gau'r Microsoft Visual Basic ar gyfer Ceisiadau ffenestr.
4. Nawr mae angen i chi aseinio'r macro i'r botwm gorchymyn. De-gliciwch y botwm gorchymyn, dewiswch Gweld y Cod o'r ddewislen cywir ar y dde.
5. Yna y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr yn ymddangos, gallwch weld y ddwy linell ganlynol wedi'u rhestru yn y Dalen (Cod) ffenestr.
Private Sub CommandButton1_Click()
End Sub
6. Rhowch enw'r macro presennol y tu mewn i'r subprocedure ar gyfer y botwm gorchymyn.
7. Gwasgwch y Alt + Q allweddi i gau'r Golygydd Sylfaenol Gweledol, a chliciwch Datblygwr > Modd Dylunio i ddiffodd y modd dylunio.
Nawr gallwch chi glicio ar y botwm gorchymyn i anfon e-bost gyda'r llyfr gwaith cyfredol fel atodiad yn yr e-bost.
4.3 Anfon e-byst o gyfrif e-bost penodedig
Fel arfer, wrth lansio e-bost o Excel gyda chod VBA, cyfrif e-bost yr anfonwr yw'r cyfrif diofyn yn Outlook. Tybiwch eich bod wedi ffurfweddu sawl cyfrif e-bost yn eich Outlook ac eisiau defnyddio cyfrif penodol i anfon yr e-byst o Excel yn lle defnyddio'r cyfrif diofyn. Gall y cod VBA canlynol helpu.
Mae'r codau canlynol yn angenrheidiol yn yr achos hwn.
Cod VBA 1:
Dim OutlookMail As Outlook.MailItem
Cod VBA 2:
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
Sut i ddefnyddio'r cod VBA uchod?
Yn yr enghraifft hon, rydyn ni'n mynd i nodi cyfrif e-bost penodol i anfon y llyfr gwaith cyfredol fel atodiad gan Excel. Gwnewch fel a ganlyn.
1. Gwasgwch y Alt + F11 allweddi. Yn y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, cliciwch offer > Cyfeiriadau. Ac yna gwiriwch y Llyfrgell Gwrthrychau Microsoft Outlook 16.0 blwch a chlicio OK yn y Cyfeiriadau - VBAProject blwch deialog.
2. Cliciwch Mewnosod > Modiwlau. Yna gludwch y cod VBA canlynol yn y Modiwl (Cod) ffenestr.
Cod VBA: Anfonwch y llyfr gwaith cyfredol fel atodiad e-bost gan Excel trwy gyfrif Outlook penodedig
Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
'End
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
3. Gwasgwch y F5 allwedd i redeg y cod. Yna neges e-bost Outlook pops i fyny, gallwch weld bod y O Mae'r maes wedi'i lenwi â'r cyfrif e-bost a nodwyd gennych yn y cod.
4.4 Anfon e-bost pan gyrhaeddir dyddiad
Os oes angen i chi anfon e-bost yn seiliedig ar ddyddiad dyledus penodol, er enghraifft, fel y dangosir yn y sgrin isod, mae tabl prosiect, pan fydd y dyddiad dyledus yn yr ystod E2:E7 yn hafal i neu'n llai na 7 diwrnod o heddiw (gan dybio mai'r dyddiad cyfredol yw 2022/8/4), bydd e-bost yn cael ei anfon yn awtomatig at yr arweinwyr prosiect cyfatebol a'u hysbysu bod y prosiect ar fin dod i ben.
1. Yn y daflen waith yn cynnwys y tabl prosiect, de-gliciwch y tab taflen a chliciwch Gweld y cod o'r ddewislen clicio ar y dde.
2. Yn yr agoriad Microsoft Visual Basic ar gyfer Ceisiadau ffenestr, gludwch y cod VBA canlynol yn y Dalen (Cod) ffenestr.
Cod VBA: Anfonwch e-bost yn awtomatig pan fydd dyddiad dyledus yn cael ei fodloni
Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "
"
xMailBody = ""
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub
Nodiadau: Yn y cod,
3. Gwasgwch y F5 allwedd i redeg y cod. Yna, os yw'r dyddiad dod i ben yn cyd-fynd â'r amodau, bydd yr e-bost cyfatebol yn cael ei greu. Yn yr achos hwn, bydd dau e-bost yn cael eu creu fel y dangosir yn y screenshot isod.
5. Offeryn defnyddiol i'ch helpu chi i anfon e-byst o Excel yn hawdd
Os ydych chi'n newbie VBA, efallai na fydd y dulliau uchod yn hawdd i chi eu trin. Yma rydym yn argymell Kutools ar gyfer Excel'S Anfon E-byst nodwedd, gyda'r nodwedd hon, gallwch chi anfon e-byst o Excel yn hawdd gyda sawl clic yn unig. Gwnewch fel a ganlyn.
Cyn gwneud cais Kutools ar gyfer Excel, os gwelwch yn dda ei lawrlwytho a'i osod yn gyntaf.
5.1 Creu rhestr bostio yn hawdd sy'n cynnwys y meysydd e-bost sydd eu hangen arnoch
Cyn cymhwyso'r nodwedd Anfon E-byst, mae angen i chi greu rhestr bostio sy'n cynnwys y meysydd e-bost sydd eu hangen arnoch chi. Yma gall y nodwedd Creu Rhestr Bostio helpu.
1. Cliciwch Kutools Byd Gwaith > Creu Rhestr Bostio.
2. Yn yr agoriad Creu Rhestr Bostio ffenestr, mae angen i chi ffurfweddu fel a ganlyn.
Yna mae tabl rhestr bostio sampl yn cael ei greu fel y dangosir yn y screenshot isod.
3. Nawr mae angen i chi ddisodli'r data gwreiddiol yn y sampl gyda'ch data maes eich hun.
Nawr rydych chi wedi creu tabl rhestr bostio. Ewch ymlaen i gymhwyso'r Anfon E-byst nodwedd i anfon e-byst o Excel yn seiliedig ar y meysydd a grëwyd gennych.
Os ydych chi am gael treial am ddim (30 diwrnod) o'r cyfleustodau hwn, cliciwch i'w lawrlwytho, ac yna ewch i gymhwyso'r llawdriniaeth yn ôl y camau uchod.
5.2 Anfon e-byst yn hawdd gan gynnwys y meysydd a grëwyd gennych yn y rhestr bostio
Ar ôl creu'r rhestr bostio (cliciwch i wybod sut) sy'n cynnwys y meysydd y gallai fod eu hangen arnoch yn eich e-byst, gallwch nawr anfon e-byst o Excel gyda'r meysydd hyn.
1. Dewiswch y rhestr bostio gyfan, cliciwch Kutools Byd Gwaith > Anfon E-byst.
2. Yn y Anfon E-byst blwch deialog, gwnewch y ffurfweddiad canlynol.
3. Yna a Kutools ar gyfer Excel blwch deialog pops up i ddweud wrthych faint o negeseuon e-bost yn cael eu hanfon, cliciwch y OK botwm i gau'r blwch deialog hwn.
Awgrymiadau: Gallwch fynd i'r Eitemau wedi'u hanfon ffolder yn eich Outlook i wirio'r e-byst a anfonwyd gennych.
5.3 Anfon e-byst gyda chorff HTML yn hawdd (gan gynnwys hyperddolen, delwedd, ac ati)
Mae'r nodwedd Anfon E-byst hon yn caniatáu ichi adeiladu e-bost html, sy'n cynnwys hyperddolen, delwedd, gwahanol feintiau ffont a lliwiau ffont, ac ati.
Ar ôl creu rhestr bostio sy'n cynnwys y meysydd e-bost sydd eu hangen arnoch,
Pan fyddwch yn ffurfweddu'r Anfon E-byst blwch deialog, gallwch chi wneud cynnwys y corff yn gyfoethog trwy ddefnyddio'r opsiynau ar y bar offer.
Gweler y sgrinlun isod:
5.4 Mewnosod llofnod rhagosodedig Outlook yn hawdd wrth anfon e-byst
Yn y dull uchod, fe wnaethom ddangos cod VBA i'ch helpu i anfon e-byst gyda llofnod rhagosodedig Outlook. Yma gyda'r nodwedd Anfon E-byst, does ond angen i chi wirio opsiwn, yna bydd llofnod rhagosodedig Outlook yn cael ei fewnosod mewn negeseuon e-bost a anfonwyd gennych o Excel.
Ar ôl creu rhestr bostio sy'n cynnwys y meysydd e-bost sydd eu hangen arnoch,
Pryd ffurfweddu'r Anfon E-byst blwch deialog, mae angen i chi glicio Dewisiadau > Defnyddiwch osodiadau llofnod Outlook.
Nodyn: Sicrhewch fod marc siec yn dangos cyn yr opsiwn Gosodiadau llofnod Defnyddiwch Outlook.
Pan fydd derbynwyr yn derbyn yr e-bost, gallant weld llofnod rhagosodedig Outlook wedi'i arddangos ar ddiwedd y corff e-bost.
5.5 Anfon e-byst yn hawdd o gyfrif e-bost penodedig
I ddefnyddio cyfrif e-bost penodol i anfon e-byst o Excel yn lle defnyddio'r cyfrif diofyn, gall y nodwedd Anfon E-byst hefyd helpu i'w wneud yn hawdd.
Ar ôl creu rhestr bostio sy'n cynnwys y meysydd e-bost sydd eu hangen arnoch,
Pryd ffurfweddu'r Anfon E-byst blwch deialog, mae angen i chi glicio Dewisiadau > Anfonwyd o, yna cliciwch ar y cyfrif e-bost y mae angen i chi anfon e-byst ohono.
Nodyn: Ar ôl dewis y cyfrif e-bost, bydd marc siec yn cael ei arddangos cyn iddo.
Cliciwch yma i wybod mwy am y nodwedd Anfon E-byst hon.
Os ydych chi am gael treial am ddim (30 diwrnod) o'r cyfleustodau hwn, cliciwch i'w lawrlwytho, ac yna ewch i gymhwyso'r llawdriniaeth yn ôl y camau uchod.
I gloi, mae anfon e-byst o Excel yn eithaf defnyddiol yn ein gwaith dyddiol. Mae'r erthygl hon yn ymdrin â phynciau mwy cynhwysfawr o negeseuon e-bost yn cael eu hanfon gan Excel, os oes pynciau eraill neu atebion haws, gadewch sylw i roi gwybod i mi.
Offer Cynhyrchiant Swyddfa Gorau
Supercharge Eich Sgiliau Excel gyda Kutools ar gyfer Excel, a Phrofiad Effeithlonrwydd Fel Erioed Erioed. Kutools ar gyfer Excel Yn Cynnig Dros 300 o Nodweddion Uwch i Hybu Cynhyrchiant ac Arbed Amser. Cliciwch Yma i Gael Y Nodwedd Sydd Ei Angen Y Mwyaf...
Mae Office Tab yn dod â rhyngwyneb Tabbed i Office, ac yn Gwneud Eich Gwaith yn Haws o lawer
- Galluogi golygu a darllen tabbed yn Word, Excel, PowerPoint, Cyhoeddwr, Mynediad, Visio a Phrosiect.
- Agor a chreu dogfennau lluosog mewn tabiau newydd o'r un ffenestr, yn hytrach nag mewn ffenestri newydd.
- Yn cynyddu eich cynhyrchiant 50%, ac yn lleihau cannoedd o gliciau llygoden i chi bob dydd!