Bỏ qua nội dung chính

Làm cách nào để gửi email bằng cách sao chép và dán một phạm vi được chỉ định vào nội dung email trong Excel?

Trong nhiều trường hợp, một loạt nội dung cụ thể trong trang tính Excel có thể hữu ích trong giao tiếp qua email của bạn. Trong bài viết này, chúng tôi sẽ giới thiệu phương pháp gửi email với phạm vi được chỉ định dán vào nội dung email trực tiếp trong Excel.

Gửi email với một phạm vi cụ thể được dán vào nội dung email trong Excel
Gửi email với một phạm vi cụ thể được dán vào nội dung email bằng một công cụ tuyệt vời

Các hướng dẫn khác để gửi thư trong Excel ...


Gửi email với một phạm vi cụ thể được dán vào nội dung email trong Excel

Mã VBA sau có thể giúp bạn sao chép một dải ô và dán nó vào nội dung email Outlook trực tiếp trong Excel. Hãy làm như sau.

1. Trong trang tính có chứa phạm vi bạn cần sao chép, hãy nhấn Khác + F11 các phím đồng thời để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Trong phần mở đầu Microsoft Visual Basic cho các ứng dụng cửa sổ, vui lòng nhấp vào CÔNG CỤ > dự án như ảnh chụp màn hình dưới đây.

3. bên trong Tài liệu tham khảo - VBAProject hộp thoại, vui lòng tìm và kiểm tra Thư viện đối tượng Microsoft Outlook rồi bấm vào OK .

4. nhấp chuột Chèn > Mô-đun, sau đó sao chép và dán mã VBA bên dưới vào cửa sổ Mô-đun.

Mã VBA: Gửi email với một phạm vi xác định được dán vào nội dung email trong Excel

Sub Send_Email()
'Updated by Extendoffice 20200119
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xEmailBody As String
    Dim xMailOut As Outlook.MailItem
    Dim xOutApp As Outlook.Application    
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    For I = 1 To xRg.Rows.Count
        For J = 1 To xRg.Columns.Count
            xEmailBody = xEmailBody & "  " & xRg.Cells(I, J).value
        Next
        xEmailBody = xEmailBody & vbNewLine
    Next
    xEmailBody = "Hi" & vbLf & vbLf & " body of message you want to add" & vbLf & vbLf & xEmailBody & vbNewLine
    With xMailOut
        .Subject = "Test"
        .To = ""
        .Body = xEmailBody
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

Chú ý:

  • 1). Vui lòng thay đổi nội dung email trong dòng xEmailBody = "Xin chào" & vbLf & vbLf & "nội dung thư bạn muốn thêm" & vbLf & vbLf & xEmailBody & vbNewLine như bạn cần.
  • 2). Vui lòng chỉ định người nhận email và chủ đề của bạn (.Để = .Subject = "test") dòng trong mã.

5. Nhấn nút F5 phím để chạy mã. Trong cửa sổ bật lên Kutools cho Excel hộp thoại, vui lòng chọn phạm vi bạn cần dán vào nội dung email, sau đó nhấp vào OK cái nút. Xem ảnh chụp màn hình:

6. Bây giờ một email được tạo với người nhận, chủ đề, nội dung và phạm vi Excel đã chọn được chỉ định, vui lòng nhấp vào Gửi để gửi email này. Xem ảnh chụp màn hình được hiển thị.

Chú thích: Mã VBA chỉ hoạt động khi bạn sử dụng Outlook làm chương trình email của mình.


Gửi email với một phạm vi cụ thể được dán vào nội dung email bằng một công cụ tuyệt vời

Nếu bạn không sử dụng Outlook và vẫn muốn gửi email trực tiếp trong Excel với dữ liệu phạm vi cụ thể được dán bên trong, tôi thực sự khuyên bạn nên Gửi email tiện ích của Kutools cho Excel cho bạn. Với tính năng này, bạn chỉ cần định cấu hình máy chủ gửi đi của một địa chỉ email, sau đó gửi email trong Excel trực tiếp qua địa chỉ email này trong tương lai.

Trước khi áp dụng Kutools cho Excel, Xin vui lòng tải xuống và cài đặt nó trước tiên.

1. Đầu tiên, bạn cần chuẩn bị một danh sách gửi thư với các trường cần thiết.

  • Lời khuyên: Danh sách gửi thư phải chứa ít nhất 2 hàng và hàng đầu tiên phải là tiêu đề (Giả sử bạn muốn gửi email đến hai địa chỉ email trong Excel, vui lòng nhập vào hai địa chỉ email này với tiêu đề “Email” như hình minh họa bên dưới ).
  • Ngoài ra, bạn có thể dễ dàng tạo một danh sách gửi thư với Tạo danh sách gửi thư tính năng này.

2. Chọn phạm vi bạn sẽ thêm dữ liệu vào nội dung email và nhấn Ctrl + C phím để sao chép nó.

3. Chọn toàn bộ danh sách gửi thư (bao gồm tiêu đề), nhấp vào Kutools Plus > Gửi email. Xem ảnh chụp màn hình:

4. Sau đó Gửi email hộp thoại bật lên.

  • 4.1) Các mục của danh sách gửi thư đã chọn được điền vào các trường tương ứng (bạn có thể thêm các trường khác vào danh sách gửi thư khi cần);
  • 4.2) Nhấp vào hộp nội dung email, nhấn Ctrl + V để dán dữ liệu phạm vi đã chọn vào đó. Sau đó, thêm nội dung khác khi bạn cần;
  • 4.3 Bỏ chọn Gửi email qua Outlook cái hộp;
  • 2.4) Nhấp vào Cài đặt máy chủ thư đi cái nút. Xem ảnh chụp màn hình:

5. Sau đó Cài đặt Máy chủ thư đi (SMTP) - Lược đồ mới hộp thoại bật lên. Vui lòng điền vào địa chỉ email với cài đặt máy chủ của nó, chỉ định một thư mục để lưu tất cả các thư đã gửi sau khi kiểm tra Lưu các email đã gửi tới và sau đó bấm vào OK để lưu cài đặt.

6. Khi nó trở về Gửi email hộp thoại, nhấp vào Gửi để gửi email.

Từ bây giờ, bạn có thể gửi trực tiếp email với tính năng này trong Excel.

  Nếu bạn muốn dùng thử miễn phí (30 ngày) tiện ích này, vui lòng nhấp để tải xuống, và sau đó đi đến áp dụng hoạt động theo các bước trên.


Các bài liên quan:

Gửi email đến các địa chỉ email được chỉ định trong các ô trong Excel
Giả sử bạn có một danh sách các địa chỉ email và bạn muốn gửi hàng loạt email đến các địa chỉ email này trực tiếp trong Excel. Làm thế nào để đạt được nó? Bài viết này sẽ chỉ cho bạn các phương pháp gửi email đến nhiều địa chỉ email được chỉ định trong các ô trong Excel.

Chèn chữ ký Outlook khi gửi email trong Excel
Giả sử bạn muốn gửi email trực tiếp trong Excel, làm cách nào bạn có thể thêm chữ ký Outlook mặc định trong email của mình? Bài viết này cung cấp hai phương pháp để giúp bạn thêm chữ ký Outlook khi gửi email trong Excel.

Gửi email với nhiều tệp đính kèm trong Excel
Bài viết này nói về cách gửi email qua Outlook với nhiều tệp đính kèm được đính kèm trong Excel.

Gửi email nếu ngày đến hạn đã được đáp ứng trong Excel
Ví dụ: nếu ngày đến hạn trong cột C nhỏ hơn hoặc bằng 7 ngày (ngày hiện tại là ngày 2017/9/13), thì hãy gửi lời nhắc qua email đến người nhận được chỉ định trong cột A với nội dung được chỉ định trong cột B. Cách thực hiện Đạt được nó? Bài viết này sẽ cung cấp một phương pháp VBA để giải quyết nó một cách chi tiết.

Tự động gửi email dựa trên giá trị ô trong Excel
Giả sử bạn muốn gửi email qua Outlook đến một người nhận nhất định dựa trên một giá trị ô được chỉ định trong Excel. Ví dụ: khi giá trị của ô D7 trong trang tính lớn hơn 200, thì một email sẽ được tạo tự động. Bài viết này giới thiệu một phương pháp VBA để bạn nhanh chóng giải quyết vấn đề này.

Các hướng dẫn khác để gửi thư trong Excel ...

Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
Comments (22)
Rated 4.5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
The only issue is that the format of the table is not maintained in the mail. Can you let me know how do we preserve the format of the table in the mail, I have the same issue, could you see if you could update it please, otherwise this is excellent.
Many thanks
Rated 4.5 out of 5
This comment was minimized by the moderator on the site
Hi Andy Mitchell,
If you want to maintain the format of the table, the following VBA script can do you a favor. Please give it a try. Thank you.
Sub Send_Email()
'Updated by Extendoffice 20220616
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    With xMailOut
        .Subject = "Test"
        .To = ""
        .HTMLBody = RangetoHTML(xRg)
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

 ' The following VBA script is cited from this page:
 ' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function
This comment was minimized by the moderator on the site
This worked perfectly, thank you so much.
I can now add my spin on it to get it doing what I need.
This comment was minimized by the moderator on the site
Hi Paul Johnson,

Very happy to help you solve the problem. Have a good day at work.
This comment was minimized by the moderator on the site
hello,
can you help me on below
I have create excel sheet & updated 10 supplier mail detailI have send mail through excel to all 10 supplier with individual sheet attachment with individual mail.
I want to paste excel data in outlook body instead of attachment in mail
can any one help me
This comment was minimized by the moderator on the site
Hi,
Instead of selecting the range, I want to select multiple pivots in the excel.
can you please help me.
This comment was minimized by the moderator on the site
Hi,
Instead of selecting the range manually, I want to select the range automatically.
This comment was minimized by the moderator on the site
Hi Raman,
In the below code, please replace the range "A1:C5" in line Set xRg = Range("A1:C5") with your own range.

Sub Send_Email()
Dim xRg As Range
Dim I, J As Long
Dim xAddress As String
Dim xEmailBody As String
Dim xMailOut As Outlook.MailItem
Dim xOutApp As Outlook.Application
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Range("A1:C5")
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
For I = 1 To xRg.Rows.Count
For J = 1 To xRg.Columns.Count
xEmailBody = xEmailBody & " " & xRg.Cells(I, J).Value
Next
xEmailBody = xEmailBody & vbNewLine
Next
xEmailBody = "Hi" & vbLf & vbLf & " body of message you want to add" & vbLf & vbLf & xEmailBody & vbNewLine
With xMailOut
.Subject = "Test"
.To = ""
.Body = xEmailBody
.Display
'.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
Hi experts, Do we have updates on how the format maintained?
This comment was minimized by the moderator on the site
Hi Ther,
Can't figure it out. Sorry for that.
This comment was minimized by the moderator on the site
i am seeing a compile error (User-defined type not defined". Please help me out to overcome this.
This comment was minimized by the moderator on the site
Hi,
Please get into the Reference window by clicking Tools > references. Scroll down to find and check the Microsoft Outlook Object Library box and click the OK button to finish the setting.
This comment was minimized by the moderator on the site
this is pasting as a text. Kindly suggest how to send the table or the same format which is copied from the excel.
This comment was minimized by the moderator on the site
Code to send automatically after selecting after ok
This comment was minimized by the moderator on the site
Hi
This code is vary excellent, by using the code i have completed my 90% of my project.
I have same issue as mentioned by Anirudh that is table formatting. How can i format the table in email.
Please help me......
This comment was minimized by the moderator on the site
Good Day,
The problem can't be solved yet. Sorry for the inconvenience and thank you for your comment.
This comment was minimized by the moderator on the site
Hi, Is there any update on below.......
This comment was minimized by the moderator on the site
Hi, Also I Wanted code for "Filter by Date".
I am working on project, on that project I wanted to filter the data by the date, actually we have filter/hide the and last 05 days to current date data and we have highlight all other data.
Please help me to complete this project.
Your help is very great-full for me.
This comment was minimized by the moderator on the site
This is great. It is working as expected. The only issue is that the format of the table is not maintained in the mail. Can you let me know how do we preserve the format of the table in the mail
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations