Страницы: 1
RSS
Отправка сообщений в приложении Outlook через макрос, Помощь в нахождении ошибки
 
Добрый день. Просьба найти ошибку в следующем коде. Краткая информация: MHC и inzh - checkbox, SendTo - textbox. Необходимо, чтобы send_click отправляла письмо по выбранным пользователям галочкам(checkbox), либо на адрес введенный вручную в поле SendTo. Не удается сделать так, чтобы во всех случаях корректно отправлялось письмо. Заранее спасибо
Код
Private Sub send_Click()
If MHC.Value = True Then
recipient = "MHC@pochta.ru"
res = SendEmailUsingOutlook(recipient, letter, subject)
End If
If inzh.Value = True Then
recipient = "inzh@pochta.ru" 
res = SendEmailUsingOutlook(recipient, letter, subject)
End If
If MHC.Value = False And inzh.Value = False And Mail.SendTo.Value = "" Then
If Mail.SendTo.Value = "" Then
MsgBox "Пусто"
Else
MsgBox Mail.SendTo.Value
End If
End If
res = SendEmailUsingOutlook(recipient, letter, subject)
If res Then MsgBox "Письмо отправлено успешно" Else MsgBox "Ошибка отправки"
End Sub
Изменено: kysokg - 14.01.2021 10:53:14
 
Цитата
kysokg написал:
найти ошибку в следующем коде
1. Коды оформляются соответствующей кнопкой: <...>
2. Лучше прикладывать файл.
3. Приложенный код не полный. Не хватает самого главного - функции SendEmailUsingOutlook, которая судя по всему и занимается отправкой. А все остальное это так, проверки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
1. Исправил, спасибо за замечание
2. Файл не могу приложить из-за политики конфиденциальности компании
3. В функции SendEmailUsingOutlook все точно правильно. Вся проблема в этих проверках
Спасибо за замечания
 
Цитата
kysokg написал:
send_click отправляла письмо по выбранным пользователям
ну в приложенном коде нет никакого выбора - есть проверка галочек в разных checkbox-ах. Сидеть и гадать что там у Вас реально на форме вообще нет желания. Здесь не форум гадалок, чтобы по голому коду формы искать ошибку логики кода.
Правда, вот это точно фигня какая-то:
Код
If MHC.Value = False And inzh.Value = False And Mail.SendTo.Value = "" Then
If Mail.SendTo.Value = "" Then
MsgBox "Пусто"
Else
MsgBox Mail.SendTo.Value
End If
End If
Зачем эти проверки, если выхода из процедуры нет и все равно идет отправка? При этом, судя по коду, recipient в этом случае пуст. Наверное, надо бы так сделать:
Код
If MHC.Value = False And inzh.Value = False And Mail.SendTo.Value = "" Then
If Mail.SendTo.Value = "" Then
MsgBox "Пусто"
Else
MsgBox Mail.SendTo.Value
End If
Exit Sub
End If
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Ошибку точно не найду, но предложу свой рабочий вариант. И не вижу никакой проблемы из рабочего файла сделать пример.
Форма ниже у меня 2 года, ежедневно отправляла 10-30 разных отчетов, по индивидуально настроенным рассылкам, на 20-300 эл.ящиков, может пригодится.
Только по началу - нужно будет справочник создать в левой части. За кнопкой создания письма - функция умной сцепки + задание темы и типового начала сообщения.
Мне было очень удобно.  
Изменено: Shama - 14.01.2021 12:44:46
Не перестаю удивляться возможностям excel и VBA.
 
Коллеги, всем спасибо за помощь. Проблему решил
Страницы: 1
Наверх