KutoolsforOffice — One Suite. Five Tools. Get More Done.February Sale: 20% Off

How to send / email range of cells through outlook from Excel?

AuthorXiaoyangLast modified

In day-to-day work with Excel, it’s common to finish a report and then need to share just a portion of the data with a specific recipient. For example, you may want to send important information from a selected range of cells rather than the entire workbook, ensuring privacy and relevance. Naturally, most users prefer solutions that don’t require manually switching to Outlook or copying and pasting content. Are there practical, efficient ways to email a defined cell range directly from Excel?

This tutorial explores multiple methods for sending or emailing selected cells using Outlook—including both VBA solutions and built-in Excel features—to help streamline your workflow and reduce manual effort. You’ll find approaches for sending the range as an attachment, embedding cells in the message body, saving cell ranges as images/PDFs prior to sending, and using legacy Excel mail features. The guide also covers key setup steps, scenario analysis, troubleshooting tips, and practical advice for getting the best results.

Send range of cells as attachment from Excel with VBA code

Send range of cells as body from Excel with VBA code

Other Built-in Excel Methods - Use the "Send to Mail Recipient" built-in feature to send selected cells as body


Send range of cells as attachment from Excel with VBA code

If you want to share a specific set of data without granting access to the entire workbook, you can extract a designated cell range and send it as file attachment—such as an .xlsx or .xls document—via Outlook. This solution is especially valuable when the recipient needs to review only part of the report or when confidentiality is important. The following steps show how to set up and use the VBA code to automate this process:

1. Open your target Excel workbook. Press ALT + F11 to launch the Microsoft Visual Basic for Applications window, where you can insert and edit VBA code.

2. Click Insert > Module, which creates a new module for your code. Paste the below script into the module window.

VBA code: send range of cells as attachment from Excel

Sub SendRange()
'Update 20131209
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 = "skyyang@extendoffice.com"
    .CC = ""
    .BCC = ""
    .Subject = "information of kte"
    .Body = "hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .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

Tips and customizations:

  • .To specifies your recipient’s email. Replace with the intended email address.
  • .CC and .BCC can be set for carbon copy or blind carbon copy as needed.
  • .Subject and .Body allow you to personalize the email message.

3. Run the code by pressing F5. A selection prompt appears. Specify the range you wish to email (it’s advisable to confirm the data before sending). See example screenshot:

vba code to select the data range

4. After clicking OK, you may encounter a progress prompt or permission notification. When finished, click Allow. The targeted cell range will be sent to your chosen recipient as an Excel file attachment.

click Allow to send the selected range as attachment

Precautions & troubleshooting:

  • If Outlook is not installed as your default mail program or not running, the code may not execute properly.
  • Ensure that macro security settings allow running VBA scripts. You may need to enable macros or adjust Trust Center settings.
  • Attachment types depend on the source file format and specified line in the VBA code.
  • After sending, check your Outlook Sent Items to confirm delivery.

This approach is ideal for secure data sharing, record archiving, and situations requiring original Excel formatting. However, recipients will need appropriate software to open attached files.


Send range of cells as body from Excel with VBA code

In scenarios where you want recipients to view the information instantly without downloading attachments—such as periodic report summaries or progress updates—you can embed the selected cell range directly in the email body. This not only improves accessibility but also makes the information easier to read and faster to process for recipients.

1. Switch to the worksheet containing your data. Press ALT + F11 to access the Microsoft Visual Basic for Applications window.

2. Click Insert > Module to open a module window, then paste the following code:

VBA code: send range of cells as body from Excel

Sub EmailRange()
'Update by Extendoffice
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
WorkRng.Select
ActiveWorkbook.EnvelopeVisible = True
With ActiveSheet.MailEnvelope
    .Introduction = "Please read this email."
    .Item.To = "skyyang@extendoffice.com"
    .Item.Subject = "information of kte"
    .Item.Send
End With
Application.ScreenUpdating = True
End Sub

Parameter notes and practical adjustments:

  • .Introduction lets you include a message before the range itself.
  • .Item.To should be updated with your desired email address.
  • .Item.Subject can be revised to fit your report or email focus.

3. Run the macro using F5. When prompted, select the desired cell range you wish to send.

vba code to select the data range

4. Confirm your selection and click OK. Monitor any security prompts. Once processed, click Allow to authorize the macro. The selected range will appear directly in your Outlook email body, formatted as a table.

click Allow to send the selected range as email body

Key reminders:

  • This solution requires Outlook to be installed and set as your default mail program.
  • Enable macros in Excel to run VBA successfully. If errors occur, check Trust Center macro settings.
  • Formatting is retained—however, complex cell formats may display differently in email than in Excel.
  • Visit your Outlook Outbox or Sent folder to confirm the message has been sent.

This approach works well for team status updates, quick data sharing, or distributing key figures to colleagues or clients who prefer immediate readability.


Other Built-in Excel Methods - Use the "Send to Mail Recipient" built-in feature to send selected cells as body

Some older versions of Excel (prior to Office 365) included a built-in “Send to Mail Recipient” button, which allows you to quickly email selected cells as the email body—no VBA required. While this feature is hidden by default in modern Excel, it is still available through Quick Access Toolbar customization. This solution works well for users on legacy Excel installations or those who prefer not to use macros.

How to enable and use:

  • Right-click the Quick Access Toolbar (above your ribbon) and select Customize Quick Access Toolbar.
  • From the command list, change “Choose commands from:” to All Commands.
  • Scroll down and add Send to Mail Recipient to your Quick Access Toolbar.
  • After setup, select the cells you want to send. Click the Send to Mail Recipient icon—Excel creates an embedded email window with the selection as the body. Add addresses, subject, and send directly.

Important notes:

  • This method requires Outlook to be configured as your default mail client.
  • Working with the embedded email window may feel different from regular Outlook composition—double-check formatting.
  • This feature may be disabled or missing in certain Excel versions (especially newer Office365 builds). Consider VBA or PDF/image export solutions in these cases.

Pros and cons:

  • Very quick and simple for supported versions; no code or advanced setup required.
  • Not available in all versions; newer Excel users may need alternative methods.

Related articles:

How to send worksheet only through Outlook from Excel?

How to send current workbook through Outlook from Excel?


Best Office Productivity Tools

🤖Kutools AI Aide: Revolutionize data analysis based on: Intelligent Execution   |  Generate Code  |  Create Custom Formulas  |  Analyze Data and Generate Charts  |  Invoke Kutools Functions
Popular Features: Find, Highlight or Identify Duplicates   |  Delete Blank Rows   |  Combine Columns or Cells without Losing Data   |  Round without Formula ...
Super Lookup: Multiple Criteria VLookup    Multiple Value VLookup  |   VLookup Across Multiple Sheets   |   Fuzzy Lookup ....
Advanced Drop-down List: Quickly Create Drop Down List   |  Dependent Drop Down List   |  Multi-select Drop Down List ....
Column Manager: Add a Specific Number of Columns  |  Move Columns  |  Toggle Visibility Status of Hidden Columns  |  Compare Ranges & Columns ...
Featured Features: Grid Focus   |  Design View   |  Big Formula Bar    Workbook & Sheet Manager   |  Resource Library (Auto Text)   |  Date Picker   |  Combine Worksheets   |  Encrypt/Decrypt Cells    Send Emails by List   |  Super Filter   |   Special Filter (filter bold/italic/strikethrough...) ...
Top 15 Toolsets12 Text Tools (Add Text, Remove Characters, ...)   |   50+ Chart Types (Gantt Chart, ...)   |   40+ Practical Formulas (Calculate age based on birthday, ...)   |   19 Insertion Tools (Insert QR Code, Insert Picture from Path, ...)   |   12 Conversion Tools (Numbers to Words, Currency Conversion, ...)   |   7 Merge & Split Tools (Advanced Combine Rows, Split Cells, ...)   |   ... and more
Use Kutools in your preferred language – supports English, Spanish, German, French, Chinese, and 40+ others!

Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time.  Click Here to Get The Feature You Need The Most...


Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!

All Kutools add-ins. One installer

Kutools for Office suite bundles add-ins for Excel, Word, Outlook & PowerPoint plus Office Tab Pro, which is ideal for teams working across Office apps.

ExcelWordOutlookTabsPowerPoint
  • All-in-one suite — Excel, Word, Outlook & PowerPoint add-ins + Office Tab Pro
  • One installer, one license — set up in minutes (MSI-ready)
  • Works better together — streamlined productivity across Office apps
  • 30-day full-featured trial — no registration, no credit card
  • Best value — save vs buying individual add-in