|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.03.2009, 20:25 | #1 | |
Регистрация: 26.03.2009
Сообщений: 3
|
из Excel в OutLook (не всё так просто...)
Добрый день.
Задача, на первый взгляд тревиальная, но... Определённым адресатам нужно отправить определённые (уникальные) файлы: N_2_*.xls - Петров@почта.ru, N_3_*.xls - Сидоров@почта.ru NS_*.xls - Иванов@почта.ru и т.п. Файлы находятся всегда в одной и той же папке. Но, часть имени (дата) файла меняется: "N_2_290309.xls" Тема письма: название файла (если можно, то без разширения) Текст письма: произвольный (например "Добрый день.") Т.е. в идеале нужно что бы макрос искал в папке файл (по неизменной части имени файла) соответствующий адресату из списка и отправлял его. Просто отправка адресатам определённых файлов из папки получилась (макрос прилагается). Затык в следующем: 1. Как макрос будет искать файл, если часть его имени изменится (в имени файла присутствует дата). 2. Если файла для этого адресата в папке нет, то макрос не должен отправлять пустое письмо без вложения. Первое, в принципе, но не желательно, можно реализовать, убрав изменяемую часть файла (но очень не желательно). Заранее спасибо. Цитата:
Последний раз редактировалось EducatedFool; 12.01.2013 в 10:39. |
|
26.03.2009, 20:57 | #2 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
Вот этот функция :
Function FileYesNo (fname) As boolean Dim fileSys As Object Set fileSys = CreateObject("Scripting.FileSystemO bject") FileYesNo = fileSys.FileExists(fname) End Function возвращает True или False если файл существует fname = "D:\temp\N_2_290309.xls" используй ее. Правило именования файла известно? Тогда можно собрать имя файла, путь и передать этой функции.
Можно сделать все! Было бы время, да деньги...
|
26.03.2009, 21:06 | #3 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
Хотя вот еще один вариант.
Sub test() File1 = ThisWorkbook.Path & "\" & "N_2*.xls" File1 = Dir(File1) If File1 <> "" Then Debug.Print File1 End Sub Он подходит больше.
Можно сделать все! Было бы время, да деньги...
|
27.03.2009, 14:25 | #4 |
Регистрация: 26.03.2009
Сообщений: 3
|
Простите за дилетанство, но вот второй вариат если использовать, куда его помещать в коде макроса, что бы он работал?
|
28.03.2009, 12:06 | #5 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
В прикрепленном файле макрос проверяет наличие файлов по заданной маске в своей директории.
Т.е. если файл "Книга 3.xlsm" сохранен в папке C:\TEMP\ он проверит все файлы в этой директории по маске заданной на странице "Лист2". Если файл удовлетворяет маске он прикрепляется, иначе нет.
Можно сделать все! Было бы время, да деньги...
|
30.03.2009, 11:17 | #6 |
Регистрация: 26.03.2009
Сообщений: 3
|
Добрый день.
Сперва хочу выразить благодарность за помощь и то что откликнулись. Возможно, я не точно или неверно задал требования к макросу и Вы меня не поняли. Если нужного файла в папке нет (допустим, там вообще нет никаких файлов), то макром не должен создавать (и отправлять как результат) пустых писем без вложений. Т.е. , если папка пустая, то ни одного письма создано быть не должно, как бы макрос отработает "в пустую". Я признателен за помощь, но и исходный макрос (без Вашего дополнения) делал абсолютно тоже самое - есть файл, он создаёт письмо и прикрепляет его, нет файла - он создаёт пустое письмо. А хотелось бы что бы он его не создавал вовсе. - возможно ли такое реализовать (к сожалению сам несколько далёк от VBA). Опять обращаюсь к Вам за помощью. |
30.03.2009, 14:45 | #7 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
Вот пример в котором при отсутствии файла для прикрепления письмо не создается. Но работает только если количество адресов 1, если более то его надо переделывать...
Можно сделать все! Было бы время, да деньги...
|
27.05.2009, 14:53 | #8 |
Новичок
Джуниор
Регистрация: 27.05.2009
Сообщений: 2
|
Код:
|
19.01.2011, 14:34 | #9 | |
Новичок
Джуниор
Регистрация: 19.01.2011
Сообщений: 1
|
Цитата:
Есть похожая задача: Есть таблица Эксел. в ней мыло и номер договора Есть набор файлов, в именах которых есть номер договора. Нужно, чтобы прога посылала адресату файлы, соответствующие номеру договора.(на каждый адрес их может быть до 4х) Подойдет ли ваша прога? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Так всё начиналось | JTG | Софт | 2 | 11.08.2008 14:34 |
Вроде на первый взгляд всЁ просто...... | Solny6ko YasnoE | Помощь студентам | 4 | 17.09.2007 08:23 |
Скока парился ни чё не получилось, а вроде всё просто! | Cherni Voron | Общие вопросы Delphi | 14 | 07.08.2007 16:25 |
Не всё так просто с кусором! TCursor и | Aslan | Общие вопросы Delphi | 1 | 11.07.2007 18:31 |