всем привет !
Пишу первый макрос :
есть таблица ексель с сописками электронных компонентов, нужно сегенерить ворд-документы по каждой однотипной позиции под требования отдела закупок.
Написал такой текст :
Код |
---|
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% |