Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 11:02:51

Войти
Интересные и полезные статьи по работе с Excel и VBA можно найти в разделе ХИТРОСТИ
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Outlook и VBA
| | |-+  Сохранение вложений с разбиением по папкам.
Страниц: [1]   Вниз
Печать
Автор Тема: Сохранение вложений с разбиением по папкам.  (Прочитано 7985 раз)
0 Пользователей и 1 Гость смотрят эту тему.
erichard
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 2


Просмотр профиля
« : 15.04.2020, 12:12:23 »

Здравствуйте, стоит задача сделать так чтобы из писем, от определенных получателей по правилу, вложения автоматически сохранялись в определенную папку.
Есть такой код, в компиляторе ошибок не выдает. По факту не отрабатывает и выдает ошибку.

Код: (vb)

Public Sub saveAtt(itm As Outlook.MailItem)

Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim sDateMail As String
Dim Sender As Outlook.AddressEntry

sDateMail = Format(itm.CreationTime, "dd.mm")

If Sender = "somemail@gmail.com" Then

saveFolder = "C:\Users\user\Documents\somefolder1"

End If

If Sender = "somemail@yandex.ru" Then

saveFolder = "C:\Users\user\Documents\somefolder2"

End If

For Each objAtt In itm.Attachments

objAtt.SaveAsFile saveFolder & "\" & sDateMail & "-" & objAtt.FileName

Set objAtt = Nothing
Next objAtt

End Sub

Ткните пожалуйста пальцем где я что-то делаю не так. При получении письма вылетает дебаггер и показывает желтой стрелочкой на строку
Код: (vb)
If Sender = "somemail@gmail.com" Then
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #1 : 15.04.2020, 13:03:08 »

А кто такое Sender? Откуда берется значение для него? По коду не нашел. А значит значение его Nothing, а Nothing нельзя сравнивать с текстом.
Если правильно понял, то эта переменная вообще не нужна, т.к. можно заменить таким:
itm.Sender.Address
следовательно:
Код: (vb)
If itm.Sender.Address = "somemail@gmail.com" Then
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
erichard
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 2


Просмотр профиля
« Ответ #2 : 16.04.2020, 12:31:25 »

Спасибо, теперь всё работает!! Веселый
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru