Câu hỏi Lưu tệp Excel dựa trên dữ liệu di động và sau đó gửi email bằng Outlook


Tôi có mỗi mã để làm những gì tôi đã nói ở trên ... tuy nhiên tôi không thể làm cho họ làm việc cùng nhau.

Tôi muốn mã:

Đầu tiên - Lưu tập tin excel dựa trên Cell C: 6

Thứ hai - Soạn thảo một email tự động trong Outlook

Thứ ba - Nhưng tôi không muốn nó gửi tự động, tôi chỉ muốn nó mở nó ra và bật lên cho người dùng.

Đây là những gì tôi có cho đến nay:

Sub SendEmail()

    Name = Range("C6").Value
    ActiveWorkbook.SaveAs Filename:=Name

    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)   

    On Error Resume Next
    With OutMail
        .to = "example email"
        .CC = ""
        .BCC = ""
        .Subject = "Form"
        .Body = "Test"
        .Attachments.Add ActiveWorkbook.FullName
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing

End Sub

Mọi sự trợ giúp sẽ rất được trân trọng. Cảm ơn bạn!


0
2018-04-24 17:34


gốc




Các câu trả lời:


Có vẻ như bạn đang thực sự gần với giải pháp! Đây là một vài điều tôi có thể nhìn thấy.

~

Có thể là tốt để xác định phạm vi của bạn trong tuyên bố này:

Name = Range("C6").Value

Thay vào đó, hãy làm như sau:

Name = ThisWorkbook.Sheets("MySheet").Range("C6").Value

~

Tiếp theo, bạn nên xác định đường dẫn đến tệp của bạn để đính kèm nó vào email. Thay vì điều này:

.Attachments.Add ActiveWorkbook.FullName

Làm cái này:

.Attachments.Add "C:\Users\Bob\...\Work_Documents\" & Name & ".xlsx"

~

Cuối cùng, thêm .Display bên trong của With Outmail khối (ngay bên dưới .Attachments ) để hiển thị email mà không cần gửi. Nếu bạn muốn nó tự động gửi, bạn có thể thêm .Send cũng.


0
2018-04-24 17:55