powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сохранение приложений в аутлук используя тему письма
14 сообщений из 14, страница 1 из 1
Сохранение приложений в аутлук используя тему письма
    #38795653
ev8383
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
По работе в Аутлуке использую правило, с помощью которого сохраняю приложения в формате pdf из писем Заказ #123456 , файл сохраняется с имем = равным номеру после #, как переделать код таким образом, чтобы в случае, если к письму приложено несколько файлов, чтобы они все сохранялись копиями вида filename(1).*, filename(2).*..., а не перезаписывались. Спасибо!!

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim Subject As String
Dim Ticket As String
 
saveFolder = "C:\Test"
     For Each objAtt In itm.Attachments
Subject = itm.Subject
 
'Trim beginning of subject
Subject = Mid(Subject, InStr(Subject, "#") + 1)
 
'Trim ending of subject
Ticket = Left(Subject, InStr(Subject, " Order") - 1)
 
objAtt.SaveAsFile saveFolder & "\" & Ticket & ".pdf"
 
Set objAtt = Nothing
Next
 
End Sub
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38795705
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim Subject As String
Dim Ticket As String
Dim i As Integer
 
saveFolder = "C:\Test"
Subject = itm.Subject
 
'Trim beginning of subject
Subject = Mid(Subject, InStr(Subject, "#") + 1)
 
'Trim ending of subject
Ticket = Left(Subject, InStr(Subject, " Order") - 1)

i = 1
For Each objAtt In itm.Attachments
  objAtt.SaveAsFile saveFolder & "\" & Ticket & "(" & CStr(i) & ").pdf"
  i = i + 1
Next

End Sub


не проверял
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38799326
ev8383
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый Shocker.Pro !! Спасибо большое за помощь. Подтверждаю, что все работает.

Возник вопрос, можно ли сделать так, чтобы в случае 1го приложения (1) не добавлялось, а добавлялось только в том случае, если файлов несколько.

Еще хотел уточнить, можно ли добавить в имя файла дату следующего дня (еще лучше следующего рабочего дня, как в excel ф-я workday),

текущую добавляю без проблем, а следуюущу или рабочую не получается.

Код: vbnet
1.
2.
Dim dateFormat
dateFormat = Format(Now, "ddmmyyyy")


Большое спасибо!
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38799332
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ev8383Возник вопрос, можно ли сделать так, чтобы в случае 1го приложения (1) не добавлялосьПроверяйте свойство itm.Attachments.Count - оно содержит количество вложений

ev8383можно ли добавить в имя файла дату следующего дняСмотрите функцию DateAdd.

Что касается рабочих дней - тут только можно свою функцию написать, которая проверяет, если сегодня пятница, добавить еще два дня.
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38799357
ev8383
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proev8383Возник вопрос, можно ли сделать так, чтобы в случае 1го приложения (1) не добавлялосьПроверяйте свойство itm.Attachments.Count - оно содержит количество вложений

ev8383можно ли добавить в имя файла дату следующего дняСмотрите функцию DateAdd.

Что касается рабочих дней - тут только можно свою функцию написать, которая проверяет, если сегодня пятница, добавить еще два дня.

Спасибо за ответ! Т.е. надо использовать
Код: vbnet
1.
If itm.Attachments.Count > 1 Then 


Уточните, пожалуйста, как в таком случае будет выглядеть строка после
Код: vbnet
1.
For Each objAtt In itm.Attachments



Со следующей датой разобрался, добавив
Код: vbnet
1.
nextDate = Format(DateAdd("d", 1, Date), "ddmmyyyy")



по рабочим дням нашел функцию (называется DateAddW, не знаю, кто автор), добавил в аутлук в виде модуля, в своем коде
Код: vbnet
1.
[quote автор]nextDate = Format(DateAddW(nextDate, 1), "ddmmyyyy")[/quote]

, но, к сожалению, не работает.
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38799361
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ev8383Уточните, пожалуйста, как в таком случае будет выглядеть строкаНу вы уж как-то сами-бы попробовали, я же не буду за вас писать всю вашу программу. Например так:
Код: vbnet
1.
itm.Attachments(1).SaveAsFile saveFolder & "\" & Ticket & ".pdf"
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38799397
ev8383
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, спасибо за ответ.
я пробовал, но у меня, к сожалению, получается либо перезапись с одним именем, либо вариант, который Вы предложили изначально. не получается сделать так, чтобы в письме с 1м приложением было обычно названием , а с 2я и более добавлялись (1), (2) и тд , чтобы избежать записи поверх 1го приложения.
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38799407
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так вот, у вас два работающих алгоритма
используйте If... Else, чтобы выполнялся только один из них
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38800799
ev8383
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proтак вот, у вас два работающих алгоритма
используйте If... Else, чтобы выполнялся только один из них

Спасибо за ответ. Буду пробовать, как получится, размещу код здесь.
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38810700
ev8383
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрите, пожалуйста, код переписал, но заставить работать не получается. Буду очень признателен любой помощи
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Dim objAtt As Outlook.Attachment
 Dim saveFolder As String
 Dim Subject As String
 Dim Ticket As String
 Dim i As Integer
 saveFolder = "C:\Test"
 Subject = itm.Subject

 Subject = Mid(Subject, InStr(Subject, "#") + 1)

 Ticket = Left(Subject, InStr(Subject, " Order") - 1)

 If itm.attachments.count > 1 Then
         
 i = 1
 For Each objAtt In itm.Attachments
   objAtt.SaveAsFile saveFolder & "\" & Ticket & "(" & CStr(i) & ").pdf"
   i = i + 1
      Else
 objAtt.SaveAsFile saveFolder & "\" & Ticket & ".pdf"

End If

 Next

 End Sub
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38810765
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Намекну, инструкция Next относится к конструкции For
а у вас она улетела куда-то вообще в неизвестность.

Обозначьте четко с помощью Next, где у вас заканчивается набор операций, которые выполняются в цикле

И сразу все заработает
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38810773
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще - чтобы хорошо понимать, как работает алгоритм с циклами и условиями, нужно строго соблюдать правила отступа строк. Все инструкции, выполняющиеся последовательно должны иметь одинаковый отступ. Все инструкции, ВЛОЖЕННЫЕ в условие или цикл, должны быть с отступом (опять же одинаковым для них). Если имеет место быть двойное вложение (например в одно условие вложено другое условие), то вложенные во второе условие инструкции должны иметь еще больший отступ. Если попытаетесь начать соблюдать это правило, сразу поймете, где ошибка.
...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38810777
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЕще - чтобы хорошо понимать, как работает алгоритм с циклами и условиями, нужно строго соблюдать правила отступа строквот первый попавшийся примерчик из соседнего топика
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
If nBitmap Then
    GdipExec GdipGetImagePixelFormat(nBitmap, pfPixFmt)
    If pfPixFmt = PixelFormat32bppARGB Then
       GdipExec GdipGetImageWidth(nBitmap, cxWidth)
       GdipExec GdipGetImageHeight(nBitmap, cyHeight)
       GdipExec GdipCreateHBITMAPFromBitmap(nBitmap, hBitmap, &H0)

       Debug.Print Err.LastDllError

    Else
       MsgBox "Wrong image format!", vbExclamation
    End If
    GdipExec GdipDisposeImage(nBitmap): nBitmap = 0
End If

...
Рейтинг: 0 / 0
Сохранение приложений в аутлук используя тему письма
    #38810885
ev8383
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro , спасибо за подробные ответы, вечером попробую поправить
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сохранение приложений в аутлук используя тему письма
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]