Здравствуйте!!! В инете нашел два макроса и соединил их в один.Макрос выполняет функцию рассылки на почту получателя, только вместо одного сообщения он отсылает два. Подправьте пожалуйста макрос, чтобы он вместо двух сообщений отправлял одно сообщение с файлом ексель. Заранее спасибо!!!
Здравствуйте!!! В инете нашел два макроса и соединил их в один.Макрос выполняет функцию рассылки на почту получателя, только вместо одного сообщения он отсылает два. Подправьте пожалуйста макрос, чтобы он вместо двух сообщений отправлял одно сообщение с файлом ексель. Заранее спасибо!!!tasdel
Anis625, Ваш вариант не подходит. Именно с рабочей книги, необходимо сделать отправку сообщения. У меня на работе сотрудники предпенсионного возраста, с компом общаются на Вы и шепотом,поэтому я хочу для них по максимуму сократить работу с дополнительными файлами,папками и окнами.
Anis625, Ваш вариант не подходит. Именно с рабочей книги, необходимо сделать отправку сообщения. У меня на работе сотрудники предпенсионного возраста, с компом общаются на Вы и шепотом,поэтому я хочу для них по максимуму сократить работу с дополнительными файлами,папками и окнами.tasdel
Sub SendMail() Application.ScreenUpdating = False ThisWorkbook.Worksheets(1).Copy With ActiveWorkbook .SendMail Recipients:="адрес получателя", Subject:="Расход" .Close SaveChanges:=False End With Application.ScreenUpdating = True End Sub
[/vba]
Держите от пенсионера будущим пенсионерам.[vba]
Код
Sub SendMail() Application.ScreenUpdating = False ThisWorkbook.Worksheets(1).Copy With ActiveWorkbook .SendMail Recipients:="адрес получателя", Subject:="Расход" .Close SaveChanges:=False End With Application.ScreenUpdating = True End Sub
Я прописал реальный эл.адрес. Этот макрос точно не требует запуска аутлук? По идее он должен работать без него. Может какие-то дополнительные настройки надо произвести в аутлук? Перепроверил еще раз, не работает.
Я прописал реальный эл.адрес. Этот макрос точно не требует запуска аутлук? По идее он должен работать без него. Может какие-то дополнительные настройки надо произвести в аутлук? Перепроверил еще раз, не работает.tasdel
doober, Все верно, один макрос работает с запуском аутлук,второй макрос работает без запуска аутлук.Я их соединил воедино, поэтому он отправляет два письма одновременно,одно из которых является пустым.
doober, Все верно, один макрос работает с запуском аутлук,второй макрос работает без запуска аутлук.Я их соединил воедино, поэтому он отправляет два письма одновременно,одно из которых является пустым.tasdel
Сообщение отредактировал tasdel - Вторник, 15.10.2019, 15:22
RAN, одна строчка: .To = "адрес получателя"; другая строчка: .SendMail Recipients:="адрес получателя". "Адрес получателя" - это электронный адрес другой организации,который я не написал.
RAN, одна строчка: .To = "адрес получателя"; другая строчка: .SendMail Recipients:="адрес получателя". "Адрес получателя" - это электронный адрес другой организации,который я не написал.tasdel
Заранее хочу оговориться, что полностью весь макрос автора, будет находиться в рабочей книге с данными, откуда собственно будет выполняться отправка письма в другую организацию.
Ребята, автор прописал строку: - . Attachments.Add Cells(lr, 4).Value - я понимаю так, что в четвертом столбце имеются ссылки на файлы ексель, которые в процессе процедуры выполнения кода, добавляются и отправляется на почту получателя.
Можно ли изменить эту строчку таким образом, чтобы во время процедуры выполнения кода добавлялась рабочая книга с нужным мне листом и отправлялась на почту получателя. К примеру: - . Attachments.Add ThisWorkbook.Worksheets(2).Copy - типа что-то в этом духе. Заранее спасибо!!!
Заранее хочу оговориться, что полностью весь макрос автора, будет находиться в рабочей книге с данными, откуда собственно будет выполняться отправка письма в другую организацию.
Ребята, автор прописал строку: - . Attachments.Add Cells(lr, 4).Value - я понимаю так, что в четвертом столбце имеются ссылки на файлы ексель, которые в процессе процедуры выполнения кода, добавляются и отправляется на почту получателя.
Можно ли изменить эту строчку таким образом, чтобы во время процедуры выполнения кода добавлялась рабочая книга с нужным мне листом и отправлялась на почту получателя. К примеру: - . Attachments.Add ThisWorkbook.Worksheets(2).Copy - типа что-то в этом духе. Заранее спасибо!!!tasdel
.Attachments.Add ThisWorkbook.FullName - при таком раскладе все работает,только отправляется книга целиком,еще бы с листами поколдовать было бы атас.
boa, А что означают три точки?
.Attachments.Add ThisWorkbook.FullName - при таком раскладе все работает,только отправляется книга целиком,еще бы с листами поколдовать было бы атас.tasdel
Сообщение отредактировал tasdel - Вторник, 15.10.2019, 23:08
Sub SendMail() Dim NewName$ Application.ScreenUpdating = False ' отключение обновления экрана Application.ThisWorkbook.Worksheets(1).Copy ' копирпование листа №1. При необходимости сменить индекс With Application.ActiveWorkbook ' новая книга с скопироавнным листом NewName = VBA.Environ("TEMP") & Application.PathSeparator & .ActiveSheet.Name & ".xlsx" ' создаем имя для временного файла, который пойдет в аттачмент .SaveAs NewName, xlOpenXMLWorkbook ' сохраняем .Close SaveChanges:=False ' закрываем End With ' выполняем код формирования письма ... .Attachments.Add NewName ' добавляем атачмент ' отправляем письмо ...
VBA.Kill NewName ' удаляем временную книгу Application.ScreenUpdating = True ' включаем обновление экрана End Sub
[/vba]
три точки - многоточие ... идеи есть?
[vba]
Код
Sub SendMail() Dim NewName$ Application.ScreenUpdating = False ' отключение обновления экрана Application.ThisWorkbook.Worksheets(1).Copy ' копирпование листа №1. При необходимости сменить индекс With Application.ActiveWorkbook ' новая книга с скопироавнным листом NewName = VBA.Environ("TEMP") & Application.PathSeparator & .ActiveSheet.Name & ".xlsx" ' создаем имя для временного файла, который пойдет в аттачмент .SaveAs NewName, xlOpenXMLWorkbook ' сохраняем .Close SaveChanges:=False ' закрываем End With ' выполняем код формирования письма ... .Attachments.Add NewName ' добавляем атачмент ' отправляем письмо ...
VBA.Kill NewName ' удаляем временную книгу Application.ScreenUpdating = True ' включаем обновление экрана End Sub