У меня есть каждый из кодов, чтобы делать то, что я сказал выше ... однако я не могу заставить их работать вместе.

Я хочу, чтобы код:

Первый - сохранить файл Excel на основе ячейки C:6

Второй - автоматически составлять электронную почту в Outlook

Третье - но я не хочу, чтобы оно отправлялось автоматически, я просто хочу, чтобы оно было открыто и всплыло для пользователя.

Это то, что я до сих пор:

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

Любая помощь будет принята с благодарностью. Спасибо!

1 ответ1

0

Похоже, вы действительно близки к решению! Вот несколько вещей, которые я могу видеть.

~

Может быть хорошо определить ваш диапазон в этом утверждении:

Name = Range("C6").Value

Вместо этого сделайте что-то вроде этого:

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

~

Затем вы должны определить путь к вашему файлу, чтобы прикрепить его к электронному письму. Вместо этого:

.Attachments.Add ActiveWorkbook.FullName

Сделай это:

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

~

Наконец, добавьте .Display внутри блока With Outmail (чуть ниже .Attachments ) для отображения электронного письма без его отправки. Если вы хотите, чтобы он автоматически отправлялся, вы можете добавить .Send также.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .