...
Гений
(84997)
5 лет назад
Навскидку - т. к. документов и шаблонов у меня нет, а код похоже чуть-чуть обрезался.
Забавно т. к. похоже, как будто если бы одну (первую) часть кода писал я =)
With ActiveDocument.MailMerge
Dim objExcel, objWorkbook, objCell
Dim strName As String
Dim i As Integer
' On Error GoTo errExcel
Set objExcel = CreateObject("Excel.Application")
'objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("C:\Users\Alex\Desktop\каталоги \шаблон\название файлов для сохранения 4сп. xlsx") 'указываем путь для файла Excel в котором содержатся названия сохраняемых файлов
Set objCell = objWorkbook.Sheets("Лист1").Range("A1")
For i = 1 To 300
strName = objCell.Text
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
'задаем № документа слияния
.FirstRecord = i
.LastRecord = i
End With
.Execute Pause:=False
End With
ActiveDocument.SaveAs2 FileName:=strName, FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=14
ActiveWindow.Close
Set objCell = objCell.Offset(1,0)
Next
objExcel.Quit
и конец когда, что у Вас не поместился судя по всему. Пишите в комменты если что.
rhgarfhgЗнаток (352)
5 лет назад
да, так и есть первую часть Вы писали с месяц назад) почему то выдает ошибку на строке end with, пишет: "End With without with". Еще получается имя файла на протяжении всего цикла присваивается из ячейки A1, как сделать что бы ячейка так же в каждом цикле прибавлялась на 1 (A1,A2,A3,A4) мб из за того, что имя файла одинаковое и выдает ошибку?
А в конце там не вставилась строка End Sub
Заранее спасибо!
Sub Макрос2()
'
' Макрос2 Макрос
With ActiveDocument.MailMerge
Dim objExcel, objWorkbook
Dim strName As String
' On Error GoTo errExcel
Set objExcel = CreateObject("Excel.Application")
'objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("C:\Users\Alex\Desktop\каталоги \шаблон\название файлов для сохранения 4сп. xlsx") 'указываем путь для файла Excel в котором содержатся названия сохраняемых файлов
strName = objWorkbook.Sheets("Лист1").Range("A1").Text 'указываем лист и ячейку в которых содержатся название сохраняемого файла
objExcel.Quit
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
'задаем № документа слияния
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:=False
End With
ActiveDocument.SaveAs2 FileName:=strName, FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=14
ActiveWindow.Close