{"id":12156,"date":"2012-08-12T12:00:48","date_gmt":"2012-08-12T12:00:48","guid":{"rendered":"http:\/\/www.learnexcelmacro.com\/?p=2318"},"modified":"2022-08-12T11:33:30","modified_gmt":"2022-08-12T11:33:30","slug":"mail-one-sheet","status":"publish","type":"post","link":"https:\/\/vmlogger.com\/excel\/2012\/08\/mail-one-sheet\/","title":{"rendered":"How to Send ActiveSheet as Attachment in mail"},"content":{"rendered":"
In previous article<\/a> of Send Email Tutorial using Excel Macro<\/a>, you learnt how to send current workbook as attachment in the email. <\/p>\n \nNote:<\/strong> The above code sends the activesheet as an attachment by email. But if you want to send any particular Sheet in the mail as an attachment, then use the below line in the above code:<\/p>\n ActiveSheet.Copy => Sheets(“Sheet_Name”).Copy<\/strong>\n<\/p><\/blockquote>\n <\/p>\n<\/span>","protected":false},"excerpt":{"rendered":" In previous article of Send Email Tutorial using Excel Macro, you learnt how to send current workbook as attachment in the email. In this Article you are going to learn how to send the ActiveSheet as an attachment in Email. The below function sends the active sheet as an attachment in email. Sub Email_One_ActiveSheet() ‘Do […]<\/p>\n","protected":false},"author":45,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[5205],"tags":[],"class_list":["post-12156","post","type-post","status-publish","format-standard","hentry","category-send-email"],"yoast_head":"\n
\nIn this Article you are going to learn how to send the ActiveSheet as an attachment in Email. The below function sends the active sheet as an attachment in email.
\n<\/p>\n\r\n\r\nSub Email_One_ActiveSheet()\r\n\r\n 'Do not forget to change the email ID\r\n 'before running this code\r\n \r\n Dim OlApp As Object\r\n Dim NewMail As Object\r\n Dim TempFilePath As String\r\n Dim FileExt As String\r\n Dim TempFileName As String\r\n Dim FileFullPath As String\r\n Dim FileFormat As Variant\r\n Dim Wb1 As Workbook\r\n Dim Wb2 As Workbook\r\n\r\n With Application\r\n .ScreenUpdating = False\r\n .EnableEvents = False\r\n End With\r\n Set Wb1 = ThisWorkbook\r\n ActiveSheet.Copy\r\n Set Wb2 = ActiveWorkbook\r\n \r\n 'Below code will get the File Extension and\r\n 'the file format which we want to save the copy\r\n 'of the workbook with the active sheet.\r\n \r\n With Wb2\r\n If Val(Application.Version) < 12 Then\r\n FileExt = ".xls": FileFormat = -4143\r\n Else\r\n Select Case Wb1.FileFormat\r\n Case 51: FileExt = ".xlsx": FileFormat = 51\r\n Case 52:\r\n If .HasVBProject Then\r\n FileExt = ".xlsm": FileFormat = 52\r\n Else\r\n FileExt = ".xlsx": FileFormat = 51\r\n End If\r\n Case 56: FileExt = ".xls": FileFormat = 56\r\n Case Else: FileExt = ".xlsb": FileFormat = 50\r\n End Select\r\n End If\r\n End With\r\n\r\n 'Save your workbook in your temp folder of your system\r\n 'below code gets the full path of the temporary folder\r\n 'in your system\r\n \r\n TempFilePath = Environ$("temp") & "\\"\r\n\r\n 'Now append a date and time stamp\r\n 'in your new file\r\n \r\n TempFileName = Wb1.Name & "-" & Format(Now, "dd-mmm-yy h-mm-ss")\r\n\r\n 'Complete path of the file where it is saved\r\n FileFullPath = TempFilePath & TempFileName & FileExt\r\n \r\n 'Now save your currect workbook at the above path\r\n Wb2.SaveAs FileFullPath, FileFormat:=FileFormat\r\n \r\n 'Now open a new mail\r\n \r\n Set OlApp = CreateObject("Outlook.Application")\r\n Set NewMail = OlApp.CreateItem(0)\r\n \r\n On Error Resume Next\r\n With NewMail\r\n .To = "info@learnexcelmacro.com"\r\n .CC = "info@learnexcelmacro.com"\r\n .BCC = "info@learnexcelmacro.com"\r\n .Subject = "Type your Subject here"\r\n .Body = "Type the Body of your mail"\r\n .Attachments.Add FileFullPath '--- full path of the temp file where it is saved\r\n .Send 'or use .Display to show you the email before sending it.\r\n End With\r\n On Error GoTo 0\r\n \r\n 'Since mail has been sent with the attachment\r\n 'Now close and delete the temp file from the\r\n 'temp folder\r\n Wb2.Close SaveChanges:=False\r\n Kill FileFullPath\r\n \r\n 'set nothing to the objects created\r\n Set NewMail = Nothing\r\n Set OlApp = Nothing\r\n \r\n 'Now set the application properties back to true\r\n With Application\r\n .ScreenUpdating = True\r\n .EnableEvents = True\r\n End With\r\nEnd Sub\r\n\r\n<\/code><\/pre>\n