Šī apmācība parādīs, kā nosūtīt e -pastus no Excel, izmantojot Outlook, izmantojot VBA.
Aktīvās darbgrāmatas nosūtīšana
1234567891011121314151617181920 | Funkcija SendActiveWorkbook (strTo kā virkne, strSubject kā virkne, neobligāta strCC kā virkne, neobligāta strBody kā virkne) kā BūlaPar kļūdu Atsākt nākamoDim appOutlook kā objektsDim mItem kā objekts"izveidot jaunu Outlook eksemplāruIestatīt appOutlook = CreateObject ("Outlook.Application")Iestatīt mItem = appOutlook .CreateItem (0)Ar mItem.To = strTo.CC = "".Subject = strSubject.Body = strBody.Attachments.Add ActiveWorkbook.FullName'izmantojiet sūtīšanu, lai nekavējoties nosūtītu, vai displeju, lai parādītu ekrānā.Rādīt 'vai .SūtītBeigt ar'sakopt priekšmetusIestatīt mItem = NekasIestatīt appOutlook = NekasBeigu funkcija |
Iepriekš minēto funkciju var izsaukt, izmantojot tālāk norādīto procedūru
123456789101112131415 | Sub SendMail ()Dim strTo Kā virkneDim strSubject kā virkneDim strBody kā virkne'aizpildīt mainīgosstrTo = "[email protected]"strSubject = "Lūdzu, pievienojiet finanšu failu"strBody = "šeit ir kāds teksts e -pasta pamattekstam"'zvaniet funkcijai, lai nosūtītu e -pastuJa SendActiveWorkbook (strTo, strSubject,, strBody) = true, tadMsgbox "E -pasta izveides panākumi"CitādiMsgbox "Neizdevās izveidot e -pastu!"Beigt, jaBeigu apakš |
Early Binding izmantošana, lai atsauktos uz Outlook objektu bibliotēku
Iepriekš minētais kods izmanto Late Binding, lai atsauktos uz Outlook objektu. Varat pievienot atsauci uz Excel un deklarēt Outlook lietojumprogrammu un Outlook pasta vienumu, ja vēlaties, izmantojot agrīno iesiešanu. Agrīnā iesiešana paātrina koda darbību, taču ierobežo to, ka lietotājam datorā jābūt vienādai Microsoft Office versijai.
Noklikšķiniet uz izvēlnes Rīki un Atsauces, lai parādītu atsauces dialoglodziņu.
Pievienojiet atsauci uz Microsoft Outlook objektu bibliotēku izmantotajai Office versijai.
Pēc tam varat labot kodu, lai tieši izmantotu šīs atsauces.
Liela agrīnas saistīšanas priekšrocība ir nolaižamie saraksti, kas parāda objektus, kas ir pieejami lietošanai!
Atsevišķas lapas sūtīšana no aktīvās darbgrāmatas
Lai nosūtītu vienu lapu, vispirms jāizveido jauna darbgrāmata no esošās darbgrāmatas, kurā ir tikai šī lapa, un pēc tam jānosūta šī lapa.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | Funkcija SendActiveWorksheet (strTo kā virkne, strSubject kā virkne, neobligāta strCC kā virkne, neobligāta strBody kā virkne) kā BūlaPar kļūdu GoTo eh'deklarēt mainīgos, lai turētu nepieciešamos objektusDim wbDestination As WorkbookDim strDestName kā virkneDim wbSource As WorkbookDim wsSource kā darblapaIzgaismojiet lietotni kā objektuDim OutMail kā objektsDim strTempName kā virkneDim strTempPath kā virkne"vispirms izveidojiet mērķa darbgrāmatuIestatiet wbDestination = Workbooks.AddstrDestName = wbDestination.Nameiestatiet avota darbgrāmatu un lapuIestatiet wbSource = ActiveWorkbookIestatiet wsSource = wbSource.ActiveSheet"nokopējiet aktīvo lapu jaunajā darbgrāmatāwsSource.Copy After: = Darbgrāmatas (strDestName). Lapas (1)'saglabājiet ar pagaidu nosaukumustrTempPath = Vide $ ("temp") & "\"strTempName = "Saraksts iegūts no" & wbSource.Name & ".xlsx"Ar wbDestination.SaveAs strTempPath & strTempNameTagad nosūtiet e -pastu uz galamērķa darbgrāmatuSet OutApp = CreateObject ("Outlook.Application")Iestatīt OutMail = OutApp.CreateItem (0)Ar OutMail.To = strTo.Subject = strSubject.Body = strBody.Attachments.Add wbDestination.FullName'izmantojiet sūtīšanu, lai nekavējoties nosūtītu, vai displeju, lai parādītu ekrānā.Display 'vai .DisplayBeigt ar. Aizvērt nepatiesuBeigt arizdzēsiet e -pastam pievienoto pagaidu darbgrāmatuNogalināt strTempPath & strTempName'notīriet objektus, lai atbrīvotu atmiņuIestatīt wbDestination = NekasIestatīt wbSource = NekasIestatīt wsSource = NekasSet OutMail = NekasSet OutApp = NekasIziet funkcijaeh:MsgBox kļūda. AprakstsBeigu funkcija |
un, lai palaistu šo funkciju, mēs varam izveidot šādu procedūru
12345678910111213 | Sub SendSheetMail ()Dim strTo Kā virkneDim strSubject kā virkneDim strBody kā virknestrTo = "[email protected]"strSubject = "Lūdzu, pievienojiet finanšu failu"strBody = "šeit ir kāds teksts e -pasta pamattekstam"Ja SendActiveWorksheet (strTo, strSubject,, strBody) = PatiessMsgBox "E -pasta izveides panākumi"CitādiMsgBox "E -pasta izveide neizdevās!"Beigas JaBeigu apakš |