title: macro to copy visible cells from excel to email body?
body: <p>I would like to copy Range(&quot;A2:K21&quot;) of commentary (sheetname) into the body of an outlook email. Can someone suggest some code. I am trying to use the below code but its not copying the excel range to the body. What am I missing? This macro is attaching the specific sheet to the email as an attachment.</p>
  <pre><code>Option Explicit
   
  Sub EmailandSaveCellValue()
       
       'Variable declaration
      Dim oApp As Object, _
      oMail As Object, _
      wb As Workbook, _
      FileName As String, MailSub As String, MailTxt As String
       
       '*************************************************  ********
       'Set email details; Comment out if not required
      Const MailTo = Worksheets(&quot;Mappings&quot;).Range(&quot;I2&quot;).Value
      Const MailCC = Worksheets(&quot;Mappings&quot;).Range(&quot;I2&quot;).Value
      
      MailSub = &quot;Please review &quot; &amp; Range(&quot;Subject&quot;)
      MailTxt = Range(&quot;Body&quot;)
       '*************************************************  ********
       
       'Turns off screen updating
      Application.ScreenUpdating = False
       
       'Makes a copy of the active sheet and save it to
       'a temporary file
      Worksheets(&quot;Commentary&quot;).Activate
      ActiveSheet.Copy
      Set wb = ActiveWorkbook
      FileName = &quot;Commentary.xls&quot;
      On Error Resume Next
      Kill &quot;C:\&quot; &amp; FileName
      On Error GoTo 0
      wb.SaveAs FileName:=&quot;C:\&quot; &amp; FileName
       
       'Creates and shows the outlook mail item
      Set oApp = CreateObject(&quot;Outlook.Application&quot;)
      Set oMail = oApp.CreateItem(0)
      With oMail
          .To = MailTo
          .CC = MailCC
          .Subject = MailSub
          .Body = MailTxt
          .Attachments.Add wb.FullName
          .Display
      End With
       
       'Deletes the temporary file
      wb.ChangeFileAccess Mode:=xlReadOnly
      Kill wb.FullName
      wb.Close SaveChanges:=False
       
       'Restores screen updating and release Outlook
      Application.ScreenUpdating = True
      Set oMail = Nothing
      Set oApp = Nothing
  End Sub
  </code></pre>