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

Làm cách nào để gửi lời nhắc hoặc thông báo qua email nếu sổ làm việc được cập nhật trong Excel?

Trong một số trường hợp, bạn có thể cần kích hoạt thông báo qua email đến người nhận được chỉ định nếu có dữ liệu được cập nhật trong sổ làm việc bạn đã gửi. Bài viết này sẽ chỉ cho bạn phương pháp để đạt được nó.

Gửi lời nhắc hoặc thông báo qua email nếu sổ làm việc được cập nhật bằng mã VBA


Gửi lời nhắc hoặc thông báo qua email nếu sổ làm việc được cập nhật bằng mã VBA

Vui lòng thực hiện như sau để gửi email nhắc nhở hoặc thông báo nếu sổ làm việc được cập nhật.

1. Trong sổ làm việc, mở một trang tính được chỉ định, bạn sẽ gửi thông báo qua email dựa trên dữ liệu cập nhật bên trong.

2. Nhấp chuột phải vào tab trang tính và chọn Mã Chế độ xem từ menu chuột phải. Xem ảnh chụp màn hình:

2. bên trong Microsoft Visual Basic cho các ứng dụng cửa sổ, sao chép và dán mã sau vào cửa sổ mã. Xem ảnh chụp màn hình:

Mã VBA: Gửi lời nhắc hoặc thông báo qua email nếu sổ làm việc được cập nhật

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    Dim xYesOrNo As Integer
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xYesOrNo = MsgBox("Want to attach updated workbook in email?", vbInformation + vbYesNo, "KuTools For Excel")
    If xYesOrNo = 6 Then ActiveWorkbook.Save
    If xYesOrNo = 6 Then xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .cc = ""
        .Subject = "email notification test"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        If xYesOrNo = 6 Then .Attachments.Add xName
        .Display
    End With
    xMailItem = Nothing
    xOutApp = Nothing
End Sub

Chú thích: Thay thế Địa chỉ email bằng địa chỉ email người nhận trong dòng .To = "Địa chỉ Email". Và thay đổi các trường Cc, Chủ đề cũng như nội dung trong mã VBA khi bạn cần.

3. Nhấn nút Khác + Q chìa khóa để đóng Microsoft Visual Basic cho các ứng dụng cửa sổ.

4. Sau khi chỉnh sửa một ô trong trang tính, a Kutools cho Excel hộp thoại sẽ bật lên như hình ảnh chụp màn hình bên dưới. Nếu bạn muốn đính kèm sổ làm việc đã cập nhật trong email, vui lòng nhấp vào cái nút. Nếu không, hãy nhấp vào Không .

5. Sau đó, một email được tạo tự động có hoặc không kèm theo sổ làm việc cập nhật. Và tất cả các trường được chỉ định cũng được liệt kê trong email. Vui lòng nhấp vào Gửi để gửi nó.

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.


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 (20)
Chưa có xếp hạng. Hãy là người đầu tiên xếp hạng!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Nếu ai đó tìm thấy trang này tự hỏi làm thế nào để gửi email từ Excel bằng CDO, tôi đã tổng hợp một Tài liệu Google - Cách Gửi Email từ Excel bằng Gmail (https://docs.google.com/document/d/1u5VLzCApU3k4-9Vp9LEfqyFZ6u9tAY0avNPYN_1FsN4/edit?usp=sharing) với mã trên GitHub gist (https://gist.github.com/bergerjac/7355d4e528fa6c64a02dc494f3d241a1)
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ể CC nhiều hơn người trong việc này không? Thanks
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
Vui lòng nhập địa chỉ email trực tiếp vào dòng .cc = "" và phân tách chúng bằng dấu chấm phẩy, chẳng hạn như .cc = "AAA@gmail.com; BBB@gmail.com"
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 đã sao chép và dán mã chính xác từ trang này, nhưng khi tôi thực hiện thay đổi đối với tài liệu của mình, tôi nhận được thông báo "Lỗi cú pháp" và dòng này làm nổi bật: Dim xOutApp As Object. Bất kỳ trợ giúp sẽ được đánh giá cao.
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 Judy,
Bạn có cung cấp phiên bản Excel mà bạn đang sử dụng không? 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
Xin chào, Mã hoạt động tuyệt vời. Tuy nhiên, khi một ô thay đổi thành dưới điểm ngưỡng thông qua thao tác macro sao chép và dán giá trị thấp hơn vào ô được chỉ định, thì mã dường như không kích hoạt.

Ngoài ra, tôi muốn áp dụng mã này cho một số ô. Tôi có thể sao chép và dán mã nhiều lần và thay đổi từng phiên bản đã sao chép để phù hợp với nhu cầu của từng ô không? Có cách nào tốt hơn để làm điều đó. Tôi không thể hiểu được điều đó. Cảm ơn 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
Xin lỗi, tôi đã đăng điều này trong một bài báo sai. Tôi sẽ đăng trong bài viết chính xác
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Khi tôi cố gắng thay đổi điều gì đó trong một ô, một thông báo được nhắc về cấu hình email Outlook và nó tiếp tục yêu cầu mật khẩu của tôi.
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 MJ,
Bạn đang sử dụng phiên bản Excel nào? Bạn có thể cung cấp ảnh chụp màn hình của lời nhắc 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
Đối với tôi, mã chạy đi chạy lại, giống như một vòng lặp không bao giờ kết thúc. Tôi đóng email nó yêu cầu gửi lại ...
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin vui lòng cho tôi một chút bối rối nhưng nơi nào trong mã nó phát hiện trang tính đang được sửa đổi / cập nhật?
tôi đang cố gắng viết mã trong đó bảng trên một trang cụ thể được gửi khi bảng được sửa đổi (hoặc cụ thể hơn khi các hàng được thêm vào)
cảm ơn 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
Chào,
Mã trong bài đăng phát hiện tất cả các ô trong toàn bộ trang tính dựa trên dòng đầu tiên của "Private Sub Worksheet_Change (ByVal Target As Range)".
Nếu bạn muốn gửi email với một bảng cụ thể khi nó được sửa đổi, bạn có thể thử VBA sau.
Chú thích: vui lòng thay đổi "Table1" thành tên bảng của riêng bạn.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 2022/5/27
    Dim xYesOrNo As Integer
    Dim xTableName As String
    Dim xTableRg As Range
    Dim I, J As Long
    Dim xEmailBody As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    
    xTableName = "Table1" 'The name of the table you will send when it is modified
    Set xTableRg = ActiveSheet.ListObjects(xTableName).Range
    If Intersect(Target, xTableRg) Is Nothing Then Exit Sub

    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    For I = 1 To xTableRg.Rows.Count
        For J = 1 To xTableRg.Columns.Count
            xEmailBody = xEmailBody & "  " & xTableRg.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 = "XXX@163.com"
        .Body = xEmailBody
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
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
Hola cristal, donde dice Private Sub Worksheet_Change, deberia poner el nombre de mi excel o no?
Los rangos de (I, J) cambiarlos bởi los valores de celdas que yo dese estar mirando si cambian?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
HOLA CRISTAL, TÔI GUSTARIA PONERME VI CONTACTO DIRECTO CONTIGO, NE CESITO DE TU AYUDA EN EXCEL, GRACIAS
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
HOLA CRISTAL, TÔI GUSTARIA PONERME EN LIÊN HỆ TRỰC TIẾP TRỰC TIẾP, PARA PEDIR TU AYUDA EN UN PrizeMITA EN UNA HOJA DE EXCEL
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 GERARDO MARTIN OLVERA!
Bạn có thể gửi email cho tôi theo địa chỉ zxm@addin99.com.
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 nên xóa phần nào của mã để nó chỉ gửi email khi tôi nhấp vào lưu chứ không phải trên mọi hành độ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 donkeh,
Trong mã VBA, vui lòng thay thế dòng sau:
.Trưng bày
với
.Gửi
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 đang theo dõi nhật ký chứng chỉ trong bảng excel. tôi cần nhận được lời nhắc trước khi chứng chỉ hết hạn. xin vui lòng tư vấn cho tôi.
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 rahul rajan,

Bạn có muốn bật lên lời nhắc dựa trên ngày của ô không?
Không có bình luận nào được đăng ở đây
Để 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