Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2011, 12:42   #1
GoreProgrammist
Пользователь
 
Регистрация: 13.07.2009
Сообщений: 52
По умолчанию Отбор писем по теме в Outlook.

Уважаемые форумчане.

Подскажите пожалуйста, есть кусок кода:

Код:
If InStr(Item.Subject, "Meteo Data") > 0 Then   
'Проверка темы письма для отлова писем с темой, содержащей слово "Meteo".
'Если тема письма содержит слово "Meteo", то происходит копирование письма в папку "MeteoDataFolder".
Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set objTestFolder = objInbox.Folders("MeteoDataFolder")
Set ObjApp = CreateObject("Outlook.Application")          
Set ObjNewItem = Item.Copy                                
ObjNewItem.Move objTestFolder
Именно вот эта строка, проверяет является ли темой письма "Meteo Data", если да то происходит обработка таких писем,

Код:
If InStr(Item.Subject, "Meteo Data") > 0 Then
Вопрос: как изменить условие на такое: Если в строке с темой письма содержится слово "Meteo", то функция "InStr" возвращает 1?
GoreProgrammist вне форума Ответить с цитированием
Старый 28.03.2011, 12:52   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
 If InStr(1, Item.Subject, "Meteo Data", vbTextCompare) = 1 Then
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 28.03.2011, 13:00   #3
GoreProgrammist
Пользователь
 
Регистрация: 13.07.2009
Сообщений: 52
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Код:
 If InStr(1, Item.Subject, "Meteo Data", vbTextCompare) = 1 Then
То есть если в теме будет "2 Meteo Data abrakadabra UN9934235", то функция вернёт 1?
GoreProgrammist вне форума Ответить с цитированием
Старый 28.03.2011, 13:02   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Она вернет 3
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 28.03.2011, 13:06   #5
GoreProgrammist
Пользователь
 
Регистрация: 13.07.2009
Сообщений: 52
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Она вернет 3
If InStr(1, Item.Subject, "Meteo Data", vbTextCompare) > 0 Then


А если сделать вот так? Нужно нестрогое соответствие, что бы тема содержала хотя бы слово "Meteo ", неважно в каком контексте.
GoreProgrammist вне форума Ответить с цитированием
Старый 28.03.2011, 13:11   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
If InStr(Item.Subject, "Meteo Data") > 0 Then

Вопрос: как изменить условие на такое: Если в строке с темой письма содержится слово "Meteo", то функция "InStr" возвращает 1?
А чем тогда не подходит ваше же решение?
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 28.03.2011, 13:19   #7
GoreProgrammist
Пользователь
 
Регистрация: 13.07.2009
Сообщений: 52
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
А чем тогда не подходит ваше же решение?
я ещё раз вечером потестирую, но я считал что функция возращает > 0, только в случае строго соответствия, сейчас я столкнулся с проблемой что нужно обрабатывать ещё и письма с темой вида "MeteoData UN783742965".
GoreProgrammist вне форума Ответить с цитированием
Старый 28.03.2011, 13:35   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

InStr (функция) - возвращает позицию первой найденной подстроки в строке
Вложения
Тип файла: txt 4. Операторы и функции.txt (25.5 Кб, 165 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 28.03.2011, 17:48   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

If InStr(Item.Subject, "Meteo") > 0 Then
if Item.Subject Like "*Meteo*" then
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для сохранения писем из Outlook. GoreProgrammist Microsoft Office Excel 1 16.11.2009 19:40
Сортировка писем Outlook с помощью VBA. GoreProgrammist Microsoft Office Excel 0 28.09.2009 14:14
MS Outlook 2003 + IMAP = проблема удаления писем SlimBr0ther Помощь студентам 2 26.12.2008 16:26
MS Excel и MS Outlook (2003) отсылка писем IceB Microsoft Office Excel 1 02.07.2007 13:32
Microsoft Office Outlook : отправка писем gaybiza Софт 1 18.11.2006 00:14