Vì vậy, tôi đã sử dụng bài báo xuất sắc này Làm cách nào để tự động gửi email dựa trên giá trị ô trong Excel? (extendofficeCom). và loại bỏ các câu trả lời cùng nhau từ các câu trả lời để làm cho điều này hoạt động như tôi cần nhưng phần cuối cùng tôi không thể tìm ra là làm thế nào để sao chép những gì tôi đã làm để chạy cho nhiều ô. Tôi đã cố gắng sao chép / dán và sắp xếp lại mã với các giá trị khác nhau như C4, C5, v.v. nhưng tôi luôn gặp lỗi. Tôi thấy nó hoạt động tốt ở chỗ nếu giá trị trong C3 là <5, nó sẽ gửi email khi sổ làm việc được lưu. Điều tôi cần bây giờ, vì đây là bảng kiểm kê, là kiểm tra nhiều giá trị ô khác ở các giá trị khác nhau. . Ví dụ, nếu chỉ C3 <5 gửi email. Nếu chỉ C4 thì <6 gửi email. Nếu C3 <5, C4 là <6 và C5 <3 thì hãy gửi email. Sẽ thật tuyệt nếu chỉ một email được tạo khi lưu với tất cả các giá trị phù hợp với <tiêu chí. Trong điều kiện thực tế (không phải thuật ngữ mã hóa), bảng tính là nơi để các kỹ thuật viên kiểm tra và xuất các mục từ bộ nhớ. Những gì tôi đang cố gắng làm là có một email tự động được gửi khi ai đó lưu sổ làm việc và mức tồn kho của một mặt hàng đã giảm xuống dưới một giá trị cụ thể để tôi biết rằng cần phải đặt hàng sớm. Cho đến nay đây là mã của tôi:
Sổ làm việc này
Private Sub Workbook_AfterSave (ByVal thành công khi Boolean)
On Error Resume Next
Dim xI dưới dạng số nguyên
Dim xRg theo phạm vi
Đặt xRg = Range ("Thông tin! C3")
xI = Int (xRg.Value)
Nếu xI <5 Thì
Gọi Mail_small_Text_Outlook
Cuối Nếu
End Sub
Mô-đun 1
Sub Mail_small_Text_Outlook ()
Dim xOutApp làm đối tượng
Làm mờ xOutMail làm đối tượng
Dim xMailBody dưới dạng chuỗi
Đặt xOutApp = CreateObject ("Outlook.Application")
Đặt xOutMail = xOutApp.CreateItem (0)
xMailBody = "Xin chào" & vbNewLine & vbNewLine & _
"Đây là dòng 1" & vbNewLine & _
Phạm vi ("Thông tin! C3") & vbNewLine & _
"Đây là dòng 2"
On Error Resume Next
Với xOutMail
.To = "Địa chỉ Email"
.CC = ""
.BCC = ""
.Subject = "gửi bằng kiểm tra giá trị ô"
.Body = xMailBody
.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
Sổ làm việc này
Private Sub Workbook_AfterSave (ByVal thành công khi Boolean)
On Error Resume Next
Dim xI dưới dạng số nguyên
Dim xRg theo phạm vi
Đặt xRg = Range ("Thông tin! C3")
xI = Int (xRg.Value)
Nếu xI <5 Thì
Gọi Mail_small_Text_Outlook
Cuối Nếu
End Sub
Mô-đun 1
Sub Mail_small_Text_Outlook ()
Dim xOutApp làm đối tượng
Làm mờ xOutMail làm đối tượng
Dim xMailBody dưới dạng chuỗi
Đặt xOutApp = CreateObject ("Outlook.Application")
Đặt xOutMail = xOutApp.CreateItem (0)
xMailBody = "Xin chào" & vbNewLine & vbNewLine & _
"Đây là dòng 1" & vbNewLine & _
Phạm vi ("Thông tin! C3") & vbNewLine & _
"Đây là dòng 2"
On Error Resume Next
Với xOutMail
.To = "Địa chỉ Email"
.CC = ""
.BCC = ""
.Subject = "gửi bằng kiểm tra giá trị ô"
.Body = xMailBody
.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