Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/63: Рейтинг темы: голосов - 63, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 20
1

Отправить письмо нескольким адресатам

14.08.2012, 15:58. Показов 11527. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Вот такой макрос не хочет отправлять письмо нескольким адресатам. В чем ошибка, подскажите, пожалуйста.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Sub CommandButton1_Click()              ' отправка
 
    Dim OutApp As Object
    Dim OutMail As Object
    Dim cell As Range
    
    'создаем новое пустое сообщение в Outlook
    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
    OutApp.Session.Logon
    On Error GoTo cleanup
    Set OutMail = OutApp.CreateItem(0)
    On Error Resume Next
    
    'заполняем его адрес, тему и т.д.
    With OutMail
        .To = "petya@ambler.ru"   ', [email]vasya@ambler.ru[/email]" ' не хочет несколько адресооов
        .Subject = "Текстовая часть"
        .Body = "Добрый день! Во вложении отклики клиентов, пожелавших оставить текстовое сообщение"
        .Attachments.Add "C:\Documents and Settings\020065\Мои документы\Текстовая часть.xls" ' сюда полный адрес вложения
        .Send               'вместо Send можно использовать Display, чтобы посмотреть сообщение перед отправкой
    End With
 
    On Error GoTo 0
    Set OutMail = Nothing
 
cleanup:
    Set OutApp = Nothing
    Application.ScreenUpdating = True
End Sub
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.08.2012, 15:58
Ответы с готовыми решениями:

Отправить письмо используя Thunderbird
Добрый день! Пытаюсь сделать макрос чтобы отправить письмо через Thunderbird, нашел такой код ...

Из Excel программно отправить письмо по почте
нужно из excel программно отправить письмо по почте не используя outlook в качестве почтовой...

Отправить из Excel письмо с вложенным файлом, используя почтовый клиент по умолчанию
Еще раз (простите). Мне нужно из Excel отправить письмо с вложенным файлом используя почтовый...

Определить, что письмо переслано, либо на это письмо отвечено
Подскажите, пожалуйста, как в Outlook понять что письмо переслано, либо на это письмо отвечено....

4
Заблокирован
14.08.2012, 18:29 2
Так не пробовали?
Visual Basic
1
.To = "petya@ambler.ru;vasya@ambler.ru"
1
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
14.08.2012, 21:00 3
Цитата Сообщение от RSM20065 Посмотреть сообщение
ambler.ru"
Может дело в амблере ?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36608 / 20335 / 4222
Регистрация: 12.02.2012
Сообщений: 33,657
Записей в блоге: 13
14.08.2012, 21:43 4
А что значит "не хочет отправлять"? Заремь On Error Resume Next и посмотри, какая ошибка возникнет.
0
0 / 0 / 0
Регистрация: 26.07.2012
Сообщений: 20
15.08.2012, 09:23  [ТС] 5
Спасибо! Вот так заработало. Вроде бы и просто, а я такой вариант даже не пробовала.

Добавлено через 1 минуту
Честно говоря, макрос брала готовый из Интернета, не знаю, куда он отправляет в случае ошибки, и какие ошибки могут возникать. Я совсем еще новичек vba. Уже со всем справилась, благодаря совету выше. Спасибо за ответ.

Добавлено через 1 минуту
Нет, к сожалению не в этом В оригинале там стояли адреса другие. Но за внимательность Вам отдельное спасибо, иногда и в этом ошибаюсь

Добавлено через 57 минут
Еще есть вот такой странный для меня нюанс. Вот этим макросом (который выше выкладывала) отправляется книга "Текстовая часть", которая создается вот так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub CommandButton2_Click()                  'формирование письма в новой книге
    Dim z As Workbook, C As Range
    Set z = Workbooks.Add(xlWBATWorksheet)           'создает только 1 лист
    Application.ScreenUpdating = False
    ThisWorkbook.Sheets("Готово").UsedRange.Copy
    z.Sheets(1).Range("A1").PasteSpecial xlPasteValues
    z.Sheets(1).Range("A1").PasteSpecial xlPasteFormats
    z.Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteColumnWidths
        For Each C In ThisWorkbook.Sheets("Готово").UsedRange.Rows
        z.Sheets(1).Rows(C.Row).RowHeight = C.RowHeight
        Next
    Application.CutCopyMode = False                      'по идее отключает обрезание 255 знаков?
    Application.ScreenUpdating = True
    z.SaveAs Filename:="Текстовая часть"
    Set z = Nothing
End Sub
При этом форматирую вид листа Excel вот так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Workbooks("База Проба.xls").Sheets("Готово").Columns("A:I").Select          ' красиво форматирует
    With Selection.Interior
        .ColorIndex = 2
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
    End With
Workbooks("База проба.xls").Sheets("Готово").Columns("J:S").Select
    With Selection.Interior
        .ColorIndex = 15
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
    End With
         Workbooks("База Проба.xls").Sheets("База").Activate    ' открывает лист базы
End Sub
Отправляется всё тем же макросом, который выкладывала выше.

При этом в письме приходит документ, в котором после необходимой информации появляются лишние листы серого окраса (видимо, копируется лишнее выделение серым из листа Excel). То есть человеку приходит документ, в котором надо печатать только первые три листа (например). А следующие три листа идут серым.И нельзя просто нажать "Распечатать", надо указывать листы, чтобы не печатать ненужные серые.

Этого как-то можно избежать?

 Комментарий модератора 
УЧИМСЯ ПОЛЬЗОВАТЬСЯ ТЭГАМИ!
В шапке редактора сообщений есть кнопка [VB]
Нажимаем её и вставляем код.
Или выделяем уже вставленный код и жмём кнопку
0
15.08.2012, 09:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2012, 09:23
Помогаю со студенческими работами здесь

Автоматическая рассылка файлов адресатам в Outlook
Всем привет! По работе каждый день приходится обрабатывать множество заказов (ктотрые...

Почтовый клиент: как отправить письмо нескольким адресатам
Проблема такая, нужно отправить письмо нескольким пользователям. Но если емайлы записать в строчку...

Как отправить готовое html-письмо в формате msg в Outlook 2013 сразу нескольким адресатам в виде рассылки
Есть готовое письмо в HTML-формате подготовленное в OUTLOOK 2013 и сохраненное в формате .msg....

Отослать письмо сразу нескольким адресатам
Добрый день. Подскажите, как правильно указать несколько адресатов, в этих строках: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru