Ребята помогите пожалуйста нужно доделать макрос, я новичок в этом деле никак не могу понять как это можно сделть есть макрос такого вида
[vba]
Код
Sub Отчет() Dim OutlookApp As Object, SM As Object Set OutlookApp = CreateObject("Outlook.Application") Set SM = OutlookApp.CreateItem(olMailItem) 'Создаем объект SM.To = "" SM.Subject = "" 'Заполнение поля "Тема" SM.Attachments.Add "I:\" + "Отчет№" + " от " + Format(Now, "ddmmyy") + ".xls" SM.Display On Error Resume Next 'Перехват возможной ошибки
Set SM = Nothing 'Очищаем использовавшиеся объекты Set OutlookApp = Nothing End Sub
[/vba]
Проблема заключается в том, что в корне много одинаковых файлов отчетов они отличаются датой т е текущая и номером по дате я разобрался, а вот с номером проблема "I:\" + "Отчет№" не знаю как здесь дописать там файлы идут вида Отчет№001 от 211114.xls Отчет№002 от 221114.xls Отчет№003 от 231114.xls Отчет№004 от 241114.xls как подцепить с нужным номером и текущей датой ?? или обрезать как то начало и цеплять только по дате помогите это реализовать, зарание спасибо!!!
Ребята помогите пожалуйста нужно доделать макрос, я новичок в этом деле никак не могу понять как это можно сделть есть макрос такого вида
[vba]
Код
Sub Отчет() Dim OutlookApp As Object, SM As Object Set OutlookApp = CreateObject("Outlook.Application") Set SM = OutlookApp.CreateItem(olMailItem) 'Создаем объект SM.To = "" SM.Subject = "" 'Заполнение поля "Тема" SM.Attachments.Add "I:\" + "Отчет№" + " от " + Format(Now, "ddmmyy") + ".xls" SM.Display On Error Resume Next 'Перехват возможной ошибки
Set SM = Nothing 'Очищаем использовавшиеся объекты Set OutlookApp = Nothing End Sub
[/vba]
Проблема заключается в том, что в корне много одинаковых файлов отчетов они отличаются датой т е текущая и номером по дате я разобрался, а вот с номером проблема "I:\" + "Отчет№" не знаю как здесь дописать там файлы идут вида Отчет№001 от 211114.xls Отчет№002 от 221114.xls Отчет№003 от 231114.xls Отчет№004 от 241114.xls как подцепить с нужным номером и текущей датой ?? или обрезать как то начало и цеплять только по дате помогите это реализовать, зарание спасибо!!!Kaktus
Сообщение отредактировал Serge_007 - Суббота, 22.11.2014, 18:56
Sub Отчет() Dim OutlookApp As Object, SM As Object Set OutlookApp = CreateObject("Outlook.Application") Set SM = OutlookApp.CreateItem(olMailItem) 'Создаем объект SM.To = "" SM.Subject = "" 'Заполнение поля "Тема"
'SM.Attachments.Add "I:\" + "Отчет№" + " от " + Format(Now, "ddmmyy") + ".xls" Dim strDirPath$, strMaskSearch$, strFileName$ strDirPath = "I:\" 'Папка поиска strMaskSearch = "Отчет№*" & Format(Now, "ddmmyy") & ".xls" 'Маска поиска 'Получаем первый файл соответствующий шаблону strFileName = Dir(strDirPath & strMaskSearch) Do While strFileName <> "" 'До тех пор пока файлы "не закончатся" SM.Attachments.Add strDirPath & strFileName 'прикрепляем очередной файл к письму strFileName = Dir 'Следующий файл Loop
SM.Display On Error Resume Next 'Перехват возможной ошибки Set SM = Nothing 'Очищаем использовавшиеся объекты Set OutlookApp = Nothing End Sub
[/vba] Если сразу не получится, дальше гуглите сами по строке: "vba получить список файлов в каталоге по маске"
Как-то так: [vba]
Код
Sub Отчет() Dim OutlookApp As Object, SM As Object Set OutlookApp = CreateObject("Outlook.Application") Set SM = OutlookApp.CreateItem(olMailItem) 'Создаем объект SM.To = "" SM.Subject = "" 'Заполнение поля "Тема"
'SM.Attachments.Add "I:\" + "Отчет№" + " от " + Format(Now, "ddmmyy") + ".xls" Dim strDirPath$, strMaskSearch$, strFileName$ strDirPath = "I:\" 'Папка поиска strMaskSearch = "Отчет№*" & Format(Now, "ddmmyy") & ".xls" 'Маска поиска 'Получаем первый файл соответствующий шаблону strFileName = Dir(strDirPath & strMaskSearch) Do While strFileName <> "" 'До тех пор пока файлы "не закончатся" SM.Attachments.Add strDirPath & strFileName 'прикрепляем очередной файл к письму strFileName = Dir 'Следующий файл Loop
SM.Display On Error Resume Next 'Перехват возможной ошибки Set SM = Nothing 'Очищаем использовавшиеся объекты Set OutlookApp = Nothing End Sub
[/vba] Если сразу не получится, дальше гуглите сами по строке: "vba получить список файлов в каталоге по маске"Gustav