Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сохранение приложений в аутлук используя тему письма / 14 сообщений из 14, страница 1 из 1
04.11.2014, 23:18
    #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
05.11.2014, 03:24
    #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
08.11.2014, 15:24
    #38799326
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение приложений в аутлук используя тему письма
Уважаемый Shocker.Pro !! Спасибо большое за помощь. Подтверждаю, что все работает.

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

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

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

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


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

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

Что касается рабочих дней - тут только можно свою функцию написать, которая проверяет, если сегодня пятница, добавить еще два дня.
...
Рейтинг: 0 / 0
08.11.2014, 16:41
    #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
08.11.2014, 16:58
    #38799361
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение приложений в аутлук используя тему письма
ev8383Уточните, пожалуйста, как в таком случае будет выглядеть строкаНу вы уж как-то сами-бы попробовали, я же не буду за вас писать всю вашу программу. Например так:
Код: vbnet
1.
itm.Attachments(1).SaveAsFile saveFolder & "\" & Ticket & ".pdf"
...
Рейтинг: 0 / 0
08.11.2014, 18:34
    #38799397
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение приложений в аутлук используя тему письма
Shocker.Pro, спасибо за ответ.
я пробовал, но у меня, к сожалению, получается либо перезапись с одним именем, либо вариант, который Вы предложили изначально. не получается сделать так, чтобы в письме с 1м приложением было обычно названием , а с 2я и более добавлялись (1), (2) и тд , чтобы избежать записи поверх 1го приложения.
...
Рейтинг: 0 / 0
08.11.2014, 18:47
    #38799407
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение приложений в аутлук используя тему письма
так вот, у вас два работающих алгоритма
используйте If... Else, чтобы выполнялся только один из них
...
Рейтинг: 0 / 0
10.11.2014, 14:18
    #38800799
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение приложений в аутлук используя тему письма
Shocker.Proтак вот, у вас два работающих алгоритма
используйте If... Else, чтобы выполнялся только один из них

Спасибо за ответ. Буду пробовать, как получится, размещу код здесь.
...
Рейтинг: 0 / 0
19.11.2014, 13:24
    #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
19.11.2014, 14:06
    #38810765
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение приложений в аутлук используя тему письма
Намекну, инструкция Next относится к конструкции For
а у вас она улетела куда-то вообще в неизвестность.

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

И сразу все заработает
...
Рейтинг: 0 / 0
19.11.2014, 14:10
    #38810773
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение приложений в аутлук используя тему письма
Еще - чтобы хорошо понимать, как работает алгоритм с циклами и условиями, нужно строго соблюдать правила отступа строк. Все инструкции, выполняющиеся последовательно должны иметь одинаковый отступ. Все инструкции, ВЛОЖЕННЫЕ в условие или цикл, должны быть с отступом (опять же одинаковым для них). Если имеет место быть двойное вложение (например в одно условие вложено другое условие), то вложенные во второе условие инструкции должны иметь еще больший отступ. Если попытаетесь начать соблюдать это правило, сразу поймете, где ошибка.
...
Рейтинг: 0 / 0
19.11.2014, 14:13
    #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
19.11.2014, 15:44
    #38810885
ev8383
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение приложений в аутлук используя тему письма
Shocker.Pro , спасибо за подробные ответы, вечером попробую поправить
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сохранение приложений в аутлук используя тему письма / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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