Trimiteți foi de lucru prin e-mail ca cărți de lucru separate - exemple de cod VBA

Acest cod salvează o foaie de lucru ca un nou registru de lucru și creează un e-mail în Outlook cu noul registru de lucru atașat. Este foarte util dacă aveți o foaie de calcul șablon standardizată care este utilizată în întreaga organizație.

Pentru un exemplu mai simplu, consultați Cum să trimiteți e-mailuri din Excel

Salvați foaia de lucru ca registru de lucru nou și atașați la e-mail

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 Sub Mail_Workbook ()Application.DisplayAlerts = FalsApplication.enableevents = FalsApplication.ScreenUpdating = FalsApplication.Calculation = xlCalculationManualDim OutApp Ca obiectReduceți mesajul ca obiectDim FilePath Ca șirDim Project_Name As StringAtenuați numele șablonului ca șirDim ReviewDate As StringReduceți locația Save Save ca șirDim Path Ca ȘirDim Name As String'Creați variabile inițialeSet OutApp = CreateObject („Outlook.Application”)Set OutMail = OutApp.CreateItem (0)Project_Name = Foi ("sheet1"). Interval ("ProjectName"). ValoareTemplate_Name = ActiveSheet.Name„Solicitați intrarea utilizată în e-mailReviewDate = InputBox (Prompt: = "Furnizați data până când doriți ca revizuirea să fie revizuită.", Titlu: = "Introduceți data", implicit: = "LL / ZZ / AAAA")Dacă ReviewDate = "Introduceți data" Sau ReviewDate = vbNullString, apoi GoTo endmacro'Salvați foaia de lucru ca registru de lucru propriuCale = ActiveWorkbook.PathNume = Trim (Mid (ActiveSheet.Name, 4, 99))Setați ws = ActiveSheetSet oldWB = ThisWorkbookSaveLocation = InputBox (Prompt: = "Choose File Name and Location", Title: = "Save As", implicit: = CreateObject ("WScript.Shell"). SpecialFolders ("Desktop") & "/" & Name & ". xlsx ")Dacă Dir (SaveLocation) "" AtunciMsgBox („Există deja un fișier cu acel nume. Alegeți un nume nou sau ștergeți fișierul existent.”)SaveLocation = InputBox (Prompt: = "Choose File Name and Location", Title: = "Save As", implicit: = CreateObject ("WScript.Shell"). SpecialFolders ("Desktop") & "/" & Name & ". xlsx ")End IfDacă SaveLocation = vbNullString, apoi GoTo endmacro'protejați foaia dacă este necesarActiveSheet.Unprotect Password: = "parolă"Setați newWB = Workbooks.Add„Reglați afișajulActiveWindow.Zoom = 80ActiveWindow.DisplayGridlines = Fals'Copiere + Lipire valorivechiWB.ActivațioldWB.ActiveSheet.Cells.SelectSelecție.CopienewWB.ActivatenewWB.ActiveSheet.Cells.SelectSelection.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks _: = False, Transpose: = FalseSelection.PasteSpecial Paste: = xlPasteFormats, Operation: = xlNone, _SkipBlanks: = False, Transpose: = FalseSelection.PasteSpecial Paste: = xlPasteValidation, Operation: = xlNone, _SkipBlanks: = False, Transpose: = False'Selectați WB nou și dezactivați modul cutcopynewWB.ActiveSheet.Range ("A10"). SelectațiApplication.CutCopyMode = Fals'Salvează fișierulnewWB.SaveAs Filename: = SaveLocation, _FileFormat: = xlOpenXMLWorkbook, CreateBackup: = FalseFilePath = Application.ActiveWorkbook.FullName'Reprotejați vechiul WBoldWB.ActiveSheet.Protect Password: = "parolă", DrawingObjects: = Adevărat, Conținut: = Adevărat, Scenarii: = Adevărat _, AllowFormattingCells: = True, AllowFormattingColumns: = True, _AllowFormattingRows: = Adevărat'E-mailLa eroare Reluați în continuareCu OutMail.to = "[email protected]".CC = "".BCC = "".Subject = Project_Name & ":" & Template_Name & "pentru examinare".Body = "Nume proiect:" & Denumire proiect & "," & Nume & "Pentru examinare până la" & RevizuireDată.Attachments.Add (FilePath).Afişa„.Trimite” Opțional pentru automatizarea trimiterii de e-mail.Se termina cuLa eroare GoTo 0Set OutMail = NimicSet OutApp = Nimic„Încheiați macrocomenzile, restaurați actualizarea ecranului, calculați, etc.… endmacro:Application.DisplayAlerts = AdevăratApplication.enableevents = AdevăratApplication.ScreenUpdating = AdevăratApplication.Calculation = xlCalculationAutomaticSfârșitul Sub

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave