Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Генерировать Word-документы по каждой однотипной позиции под требования отдела закупок
 
все заработало. Внимательность нужна.
Спаисбо всем за внимание к проблеме начинающего VBA-шника )
Генерировать Word-документы по каждой однотипной позиции под требования отдела закупок
 
Я думаю, может быть не успевает закрыть первый файл...? Есть ли метод который возвращает данные что файл закрыт?

Цитата
Mershik написал: поменяйте формат файла везде с docx на dotx
менял. тот же эффект, только еще и первый созданный файл не открывается "из за проблем с его содержимым"
Генерировать Word-документы по каждой однотипной позиции под требования отдела закупок
 
Так пробовал : пишет первый файл, а на втором зависает на первой строке записи .
objDoc.Bookmarks("Z1").Range.InsertAfter (Cells(14, 2).Value) & " "

В чем проблема я пока не понимаю (
Изменено: alex niki - 28.01.2021 16:41:37
Генерировать Word-документы по каждой однотипной позиции под требования отдела закупок
 
вот
тексты шаблона и макроса подрезал по минимуму
Генерировать Word-документы по каждой однотипной позиции под требования отдела закупок
 
всем привет !
Пишу первый макрос :
есть таблица ексель с сописками электронных компонентов, нужно сегенерить ворд-документы по каждой однотипной позиции под требования отдела закупок.
Написал такой текст :

Код
Sub m1()

Dim objWord As Object

Dim FileSt
Dim FileNew
 
Set objWord = CreateObject("Word.Application")

    FileSt = "C:\SHABLON.docx"
        
Set objDoc = objWord.Documents.Open(FileSt)

    objWord.Visible = True
    
' пишем в файлы с названием элемента в цикле

For i = 15 To 25
      
      FileNew = "C:\zayavki2021\" & i & Cells(14, 2).Value & Cells(i, 2).Value & ".docx"

      objWord.ActiveDocument.SaveAs _
            Filename:=FileNew, _
            AddToRecentFiles:=True, _
            ReadOnlyRecommended:=False        
      
' ТИТУЛЬНЫЙ ЛИСТ
     objDoc.Bookmarks("Z1").Range.InsertAfter "_" & i & (Cells(14, 2).Value)
     objDoc.Bookmarks("Z1").Range.InsertAfter (Cells(i, 2).Value)
' название
      objDoc.Bookmarks("Z2").Range.InsertAfter (Cells(14, 2).Value)
      objDoc.Bookmarks("Z2").Range.InsertAfter (Cells(i, 2).Value)
' область применения
     objDoc.Bookmarks("Z3").Range.InsertAfter (Cells(14, 2).Value)
     objDoc.Bookmarks("Z3").Range.InsertAfter (Cells(i, 2).Value)
' параметры и размеры
      objDoc.Bookmarks("Z4").Range.InsertAfter (Cells(14, 2).Value)
' технико эконом и эксплуат показатели
      objDoc.Bookmarks("Z5").Range.InsertAfter (Cells(i, 6).Value)
' ТРЕБОВАНИЯ К ЭЛЕКТРОПИТАНИЮ
      objDoc.Bookmarks("Z6").Range.InsertAfter (Cells(i, 6).Value)
' КОЛИЧЕСТВО
      objDoc.Bookmarks("Z7").Range.InsertAfter (Cells(i, 6).Value) 
 
  Next i
  
objWord.ActiveDocument.Close
objWord.Quit
 
End Sub

Однако такая конструкция в цикле  работает  неправильно: в последний файл из десяти  вписываются все позиции.
Во второй две, в в пятый пять
Примерно так получатся в последнем ворд-файле:
Цитата
Техническое задание  на поставку
0402 10k 0.062Вт 25В_25Резисторы 1%0402 6k2 0.062Вт 25В_24Резисторы 1%0402 5k6 0.062Вт 25В_23Резисторы 1%0402 1k6 0.062Вт 25В_22Резисторы 1%0402 1k 0.062Вт 25В_21Резисторы 1%0402 680 0.062Вт 25В_20Резисторы 1%0402 100 0.062Вт 25В_19Резисторы 1%0402 1k6 0.062Вт 25В_18Резисторы 1%0402 68 0.062Вт 25В_17Резисторы 1%0402 50 0.062Вт 25В_16Резисторы 1%0402 20 0.062Вт 25В _15Резисторы 1%
Страницы: 1
Наверх