Note: The other languages of the website are Google-translated. Back to English

Làm thế nào để gửi email nếu nút được nhấp trong Excel?

Giả sử bạn cần gửi email qua Outlook bằng cách nhấp vào một nút trong trang tính Excel, bạn có thể làm như thế nào? Bài viết này sẽ giới thiệu chi tiết một phương pháp VBA để đạt được nó.

Gửi email nếu nút được nhấp bằng mã VBA


Gửi email nếu nút được nhấp bằng mã VBA

Vui lòng thực hiện như sau để gửi email qua Outlook nếu Nhấp vào Nút lệnh trong sổ làm việc Excel.

1. Chèn một nút lệnh trong trang tính của bạn bằng cách nhấp vào Nhà phát triển > Chèn > Nút lệnh (Điều khiển ActiveX). Xem ảnh chụp màn hình:

2. Bấm chuột phải vào Nút lệnh được chèn, sau đó bấm Mã Chế độ xem từ menu chuột phải như hình ảnh chụp màn hình bên dưới.

3. Trong phần mở đầu Microsoft Visual Basic cho các ứng dụng , vui lòng thay thế mã gốc trong cửa sổ Mã bằng tập lệnh VBA sau.

Mã VBA: Gửi email nếu nút được nhấp trong Excel

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Body content" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
                  On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "Test email send by button clicking"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

Chú ý:

1). Vui lòng thay đổi nội dung email khi bạn cần trong xMailBody dòng trong mã.

2). Thay thế cái Email với địa chỉ email người nhận trong dòng .To = "Địa chỉ Email".

3). Chỉ định người nhận Cc và Bcc khi bạn cần .CC = “” .bcc = “” phần.

4). Thay đổi chủ đề email trong dòng .Subject = "Gửi email thử nghiệm bằng cách nhấp vào nút".

4. Nhấn nút Khác + Q các phím đồng thời để đóng Microsoft Visual Basic cho các ứng dụng cửa sổ.

5. Tắt Chế độ thiết kế bằng cách nhấp vào Nhà phát triển > Chế độ thiết kế. Xem ảnh chụp màn hình:

Từ bây giờ, mỗi khi bạn nhấp vào Nút lệnh, một email sẽ được tạo tự động với người nhận, chủ đề và nội dung được chỉ định. Vui lòng gửi email bằng cách nhấp vào Gửi .

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.

Dễ dàng gửi email qua Outlook dựa trên các trường của danh sách gửi thư đã tạo trong Excel:

Mô hình Gửi email tiện ích của Kutools cho Excel giúp gửi email qua Outlook dựa trên các trường của danh sách gửi thư đã tạo trong Excel.
Tải xuống và thử ngay bây giờ! (30-ngày đường mòn miễn phí)


Các bài liên quan:


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

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2021 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ tính năng Dùng thử miễn phí 30 ngày. Bảo đảm hoàn lại tiền trong 60 ngày.
tab kte 201905

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!
officetab dưới cùng
Nhận xét (73)
Xếp hạng 3.5 trong 5 · xếp hạng 1
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi đang tìm cách gửi dữ liệu từ dữ liệu bảng tổng hợp, bạn có thể vui lòng giúp đỡ không
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có khả năng viết script để khi bạn nhấp vào nút, nó sẽ tự đính kèm vào email như trên nhưng cũng bỏ nút đó đi không? để bản sao của tệp được gửi qua email không còn nút trên đó?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ngay bên dưới ".Body = xMailBody" thêm phần sau
.Attachments.Add ActiveWorkbook.FullName
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Danie.

Tôi đã thêm phần như bạn nói, nhưng email có sổ làm việc đính kèm vẫn có các nút trên.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, có thể thiết lập nó để tôi không phải nhấn gửi - nó tự động gửi email không ????
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
Vui lòng thay thế dòng .Display bằng .Send vào mã VBA ở trên.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
nó chỉ tạo một email và sẽ tiếp tục ghi đè nội dung thay vì mở nhiều email nháp.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào tất cả trước tiên, xin chân thành cảm ơn, bài đăng này rất hữu ích và có tác dụng với phần đính kèm. Điều này phù hợp với tôi nhưng không có cập nhật nào được lưu trong trang tính, bạn phải nhấn nút lưu. Tôi muốn tệp đính kèm có bất cứ thứ gì hiện có trong trang tính excel.

Tôi có thể thực hiện điều này bằng cách sử dụng tính năng E-mail tích hợp trong excel nhưng tôi muốn có một nút vì tôi cần mã hóa địa chỉ email cụ thể.

Vì vậy, tóm lại tôi muốn biết:

Tôi muốn biết có cách nào để: sau khi người dùng mở sổ làm việc excel và thực hiện các chỉnh sửa nếu nút sẽ giữ tệp đính kèm với các bản cập nhật?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ngày tốt,
Mã đã được tối ưu hóa. Xin vui lòng có một thử và cảm ơn cho nhận xét của bạn.

Private Sub CommandButton1_Click ()
'Cập nhật Extendoffice 2017 / 9 / 14
Dim xOutApp làm đối tượng
Làm mờ xOutMail làm đối tượng
Dim xMailBody dưới dạng chuỗi
On Error Resume Next
Đặt xOutApp = CreateObject ("Outlook.Application")
Đặt xOutMail = xOutApp.CreateItem (0)
ActiveWorkbook.Save
xMailBody = "Nội dung cơ thể" & vbNewLine & vbNewLine & _
"Đây là dòng 1" & vbNewLine & _
"Đây là dòng 2"
On Error Resume Next
Với xOutMail
.To = "Địa chỉ Email"
.CC = ""
.BCC = ""
.Subject = "Gửi email thử nghiệm bằng cách nhấp vào nút"
.Body = xMailBody
.Attachments.Add ActiveWorkbook.FullName
.Display 'hoặc sử dụng .Send
Kết thúc với
Về lỗi GoTo 0
Đặt xOutMail = Không có gì
Đặt xOutApp = Không có gì
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm cách nào để đính kèm Sổ làm việc Hoạt động vào email khi tôi nhấn nút?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Good day,
Ngay bên dưới ".Body = xMailBody" thêm phần sau
.Attachments.Add ActiveWorkbook.FullName
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Teria como em vez de enviar a planilha, enviar as Informações em imagem?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
bằng cách sử dụng mã VBA này, tôi có thể tham chiếu thông tin ô trong nội dung email không? Ví dụ: làm cách nào để tôi tham chiếu các giá trị ô cho đoạn mã dưới đây?

xMailBody = "Nội dung cơ thể" & vbNewLine & vbNewLine & _
"Đây là dòng 1" & vbNewLine & _
"Đây là dòng 2"

Ngoài ra, bằng cách sử dụng mã (.TO = "địa chỉ email"). làm thế nào tôi có thể có "địa chỉ email" kéo địa chỉ email từ một ô trong cột bên cạnh nó.


Cảm ơn,
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có thể thêm nút email thứ hai trong cùng một trang tính không? Khi tôi cố gắng làm điều đó, nó đang kết nối với mã từ nút email ban đầu. cảm ơn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,
Bạn cần gán các mã khác nhau cho mỗi nút.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
bằng cách sử dụng mã VBA này, tôi có thể tham chiếu thông tin ô trong nội dung email không? Ví dụ: làm cách nào để tôi tham chiếu các giá trị ô cho đoạn mã dưới đây?

xMailBody = "Nội dung cơ thể" & vbNewLine & vbNewLine & _
"Đây là dòng 1" & vbNewLine & _
"Đây là dòng 2"

Cảm ơn,
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Glenn,
Vui lòng áp dụng mã sau. Cảm ơn bình luận của bạn.
xMailBody = [B5]
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Có thể, thay vì gửi tệp đính kèm trong email, gửi siêu kết nối đến tệp (nằm trên SharePoint) không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào Laurie,
Không thể giúp bạn với điều đó. Cảm ơn bình luận của bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi có thể tham chiếu giá trị trong một ô trong chủ đề với chuỗi không? Một số biến thể của dưới đây?

.Subject = "Sự kiện mới:" & Target.Address = "$ B $ 38"
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Abi,
Vui lòng thay đổi mã thành .Subject = "Sự kiện mới:" & [B38].
Cảm ơn bạn đã bình luận của bạn.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Ở đó,
Bất cứ ai có thể giúp tôi về yêu cầu sau đây?
Tôi có một trang tính excel có hai danh sách thả xuống.

1 danh sách thả xuống- danh sách các phòng ban

2 danh sách thả xuống- danh mục

Điều tôi muốn là khi tôi chọn một bộ phận và danh mục từ danh sách; (ví dụ: nếu tôi chọn "doanh số bán hàng" trong bộ phận và "báo cáo hàng tháng" trong danh mục)

Tôi cần gửi email phiên bản PDF của bảng công việc đó cho nhóm bán hàng với tiêu đề email là báo cáo hàng tháng.

Nếu tôi chọn "sản xuất" từ danh sách bộ phận, email sẽ được chuyển đến một nhóm người trong bộ phận sản xuất.

Tôi đánh giá cao nếu bạn có thể giúp tôi về điều này

rasike
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Rasike,
Xin lỗi không thể giúp bạn với điều đó. Chào mừng bạn đến đăng bất kỳ câu hỏi nào trong diễn đàn của chúng tôi: https://www.extendoffice.com/forum.html để được hỗ trợ nhiều hơn về Excel từ các chuyên gia Excel hoặc những người hâm mộ Excel khác.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Làm cách nào để nhận thư tự động thêm chữ ký của tôi từ outlook?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào John,
Mã VBA dưới đây có thể giúp bạn giải quyết vấn đề. Cám ơn bạn đã góp ý.

Private Sub CommandButton1_Click ()
'Cập nhật Extendoffice 2019 / 6 / 26
Dim xOutApp làm đối tượng
Làm mờ xOutMail làm đối tượng
On Error Resume Next
Đặt xOutApp = CreateObject ("Outlook.Application")
Đặt xOutMail = xOutApp.CreateItem (0)
Với xOutMail
.Display 'hoặc sử dụng .Send
.To = "Địa chỉ Email"
.CC = ""
.BCC = ""
.Subject = "Gửi email thử nghiệm bằng cách nhấp vào nút"
.HTMLBody = "Đây là email thử nghiệm gửi trong Excel" & "
"& .HTMLBody
'.Gửi
Kết thúc với
Về lỗi GoTo 0
Đặt xOutMail = Không có gì
Đặt xOutApp = Không có gì
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn có phải là người dùng excel khi nhấn nút để gửi email không? hay chỉ người nhận email phải là người dùng outlook?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Good day,
Vì email cần được gửi qua Outlook sau khi nhấp vào nút trong Excel, bạn phải cài đặt Outlook trong máy tính của mình để nó hoạt động.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi muốn gửi bảng tính excel trong email nhưng nó không gửi được. Làm thế nào để bạn viết mã để gửi tài liệu dưới dạng email
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào marcus,
Mã VBA dưới đây có thể giúp bạn giải quyết vấn đề.

Sub SendWorkSheet ()
'Cập nhật 20190626
Dim xFile dưới dạng chuỗi
Dim xFormat càng lâu càng tốt
Làm mờ Wb dưới dạng sổ làm việc
Làm mờ Wb2 dưới dạng sổ làm việc
Làm mờ đường dẫn tệp dưới dạng chuỗi
Tên tệp mờ dưới dạng chuỗi
Làm mờ OutlookApp làm đối tượng
Làm mờ OutlookMail dưới dạng đối tượng
On Error Resume Next
Application.ScreenUpdating = Sai
Đặt Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Đặt Wb2 = Application.ActiveWorkbook
Chọn Case Wb.FileFormat
Trường hợp xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Trường hợp xlOpenXMLWorkbookMacroEnabled:
Nếu Wb2.HasVBProject Thì
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Khác
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Cuối Nếu
Trường hợp Excel8:
xFile = ".xls"
xFormat = Excel8
Trường hợp xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
Kết thúc Chọn
FilePath = Môi trường $ ("tạm thời") & "\"
FileName = Wb.Name & Format (Bây giờ, "dd-mmm-yy h-mm-ss")
Đặt OutlookApp = CreateObject ("Outlook.Application")
Đặt OutlookMail = OutlookApp.CreateItem (0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat: = xFormat
Với OutlookMail
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte tính năng"
.Body = "Vui lòng kiểm tra và đọc tài liệu này."
.Attachments.Add Wb2.FullName
.Trưng bày
'.Gửi
Kết thúc với
Wb2.C Close
Kill FilePath & FileName & xFile
Đặt OutlookMail = Không có gì
Đặt OutlookApp = Không có gì
Application.ScreenUpdating = True
End Sub
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Làm cách nào để đính kèm Bảng Hoạt động vào email khi tôi nhấn nút?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Grant,
Vui lòng nhấp chuột phải vào nút và chọn Mã Chế độ xem, sau đó sao chép mã bên dưới giữa dòng Phụ cá nhân và Dòng phụ cuối. Hy vọng tôi có thể giúp đỡ. Cám ơn bạn đã góp ý.

Dim xFile dưới dạng chuỗi
Dim xFormat càng lâu càng tốt
Làm mờ Wb dưới dạng sổ làm việc
Làm mờ Wb2 dưới dạng sổ làm việc
Làm mờ đường dẫn tệp dưới dạng chuỗi
Tên tệp mờ dưới dạng chuỗi
Làm mờ OutlookApp làm đối tượng
Làm mờ OutlookMail dưới dạng đối tượng
On Error Resume Next
Application.ScreenUpdating = Sai
Đặt Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Đặt Wb2 = Application.ActiveWorkbook
Chọn Case Wb.FileFormat
Trường hợp xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Trường hợp xlOpenXMLWorkbookMacroEnabled:
Nếu Wb2.HasVBProject Thì
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Khác
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Cuối Nếu
Trường hợp Excel8:
xFile = ".xls"
xFormat = Excel8
Trường hợp xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
Kết thúc Chọn
FilePath = Môi trường $ ("tạm thời") & "\"
FileName = Wb.Name & Format (Bây giờ, "dd-mmm-yy h-mm-ss")
Đặt OutlookApp = CreateObject ("Outlook.Application")
Đặt OutlookMail = OutlookApp.CreateItem (0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat: = xFormat
Với OutlookMail
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte tính năng"
.Body = "Vui lòng kiểm tra và đọc tài liệu này."
.Attachments.Add Wb2.FullName
.Trưng bày
'.Gửi
Kết thúc với
Wb2.C Close
Kill FilePath & FileName & xFile
Đặt OutlookMail = Không có gì
Đặt OutlookApp = Không có gì
Application.ScreenUpdating = True
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Có cách nào để thay đổi tên tệp thành ngày hiện tại khi nó đính kèm vào email không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào,

Tôi đã làm việc trên một trang tính, nhưng tôi không thể hoàn thành nó. Tôi hy vọng bạn có thể giúp tôi :)

Bản thân tệp của nó phải là xltm (mẫu) và nó phải đính kèm trang tính của chính nó trong thư.

Và một chữ ký tự động, sau đó tôi sẽ rất hạnh phúc.

Cảm ơn trước / Tiến sĩ. Nang
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi chạy một bảng tính với 80 tài khoản thanh riêng lẻ và đã sử dụng mã VBA trên trang này với nhiều thành công. Tuy nhiên, trong phần nội dung email, tôi muốn sao chép và dán phạm vi ô cụ thể của tài khoản khi gửi để khách hàng có thể có lịch sử. Bạn có thể giúp với mã VBA cho việc này không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào! Cám ơn bạn rất nhiều về điều này. Đó là sự giúp đỡ tuyệt vời.

Có thể gửi một trang tính đang hoạt động bằng cách nhấn một nút thay vì toàn bộ sổ làm việc không?

Cảm ơn!
Không có bình luận nào được đăng ở đây
Tải thêm
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất

Kết nối với chúng tôi

Bản quyền © 2009 - www.extendoffice.com. | Đã đăng ký Bản quyền. cung cấp bởi ExtendOffice. | BẢN ĐỒ CHI NHÁNH
Microsoft và logo Office là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Microsoft Corporation tại Hoa Kỳ và / hoặc các quốc gia khác.
Được bảo vệ bởi Sectigo SSL