Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
24.04.2024, 14:08:12

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 242 Сообщений в 5 457 Тем от 6 761 Пользователей
Последний пользователь: Halfdoor
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Word и VBA
| | |-+  Проблемы со слияние в сохранении pdf имени с точкой
Страниц: [1]   Вниз
Печать
Автор Тема: Проблемы со слияние в сохранении pdf имени с точкой  (Прочитано 5224 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Deimos_092
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 8


Просмотр профиля E-mail
« : 05.05.2016, 09:30:10 »

Всем доброго времени суток!
Есть проблема при слиянии в макросе ворд документ сохраняет файл с кодом клиента но код клиента идет через точку
например: 1.234567_GSM
Kак исправить эту проблему, т.к. у меня все файл сохраняются в неизвестном формате (234567_GSM)
в ручную каждый файл переименовывать как то не хочется
вот код макроса
Код: (vb)

Sub Save_All_Files(Count As String)
  Const OUTGOING As String = "Код"
  Dim oMergedDoc As Document, SavePath As String
 
  Dim DialogFile As FileDialog
  MsgBox "Укажите путь(папку) сохранения всех файлов"
  Set DialogFile = Application.FileDialog(FileDialogType:=msoFileDialogFolderPicker)
  With DialogFile
  .Show
  End With
  SavePath = DialogFile.SelectedItems(1)

  If ActiveDocument.MailMerge.MainDocumentType <> wdNotAMergeDocument Then
    Set oMergedDoc = ActiveDocument
  Else
    MsgBox "Активный документ должен быть создан слиянием", vbExclamation, "Сохранение документов после слияния"
    Exit Sub
  End If
  If Not oMergedDoc.Bookmarks.Exists(OUTGOING) Then
    MsgBox "В документе нет закладки с именем " & OUTGOING & ", которая используется в качестве имени файла." & vbNewLine & _
          "Создайте закладку с таким именем и запустите макрос заново"
    Exit Sub
  End If
 
  oMergedDoc.MailMerge.DataSource.ActiveRecord = wdFirstRecord
 
  Dim i As Integer
  With oMergedDoc.MailMerge
    For i = 1 To .DataSource.RecordCount
      .Destination = wdSendToNewDocument
      .SuppressBlankLines = True
      With .DataSource
        .FirstRecord = .ActiveRecord
        .LastRecord = .ActiveRecord
      End With
      If Count = "" Then
      .Execute False
      With Documents(1)
        .ExportAsFixedFormat SavePath & "\" & oMergedDoc.Bookmarks(OUTGOING).Range.Text & "_GSM", wdExportFormatPDF
        .Close False
      End With
      Else
      .Execute False
      With Documents(1)
        .ExportAsFixedFormat SavePath & "\" & oMergedDoc.Bookmarks(OUTGOING).Range.Text & "_GSM_" & Count, wdExportFormatPDF
        .Close False
      End With
      End If
      .DataSource.ActiveRecord = wdNextRecord
      DoEvents
    Next
  End With
 
  MsgBox "Все документы слияния сохранены по пути """ & SavePath & """", vbInformation, "Сохранение документов после слияния"
End Sub

Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #1 : 05.05.2016, 09:59:50 »

Так Вы расширение-то задавайте при сохранении нужное:
SavePath & "\" & oMergedDoc.Bookmarks(OUTGOING).Range.Text & "_GSM.pdf"
и в остальных строках так же добавьте в конце имени файла расширение.
Иначе да, расширением будет считаться все, что после последней точки в имени файла, т.к. ничего больше Вы не записываете в имя.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru