Sub Кнопка1_Щелчок() Dim ICell As Range, FR As Long, Kriteriy As String
Dim objWrdApp As Object
Dim objWrdDoc As Object
Dim objWrdDoc1 As Object
On Error Resume Next
Set objWrdApp = GetObject(, "Word.Application")
If objWrdApp Is Nothing Then
Set objWrdApp = CreateObject("Word.Application")
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\РИ\Шаблон_Ролевая_Инструкция_пользователя.docx")
objWrdApp.Visible = True
End If
Application.ScreenUpdating = False
Kriteriy = Range("D1")
Sheets(6).Cells.Clear
Range(Cells(2, 3), Cells(2, 5)).Copy Sheets(6).Cells(1, 1)
Cells(2, 9).Copy Sheets(6).Cells(1, 4)
FR = 2
For Each ICell In Range(Cells(3, "J"), Cells(Rows.Count, "J").End(xlUp))
If ICell Like Kriteriy & "*" Then
Range(Cells(ICell.Row, 3), Cells(ICell.Row, 5)).Copy
Sheets(6).Cells(FR, 1).PasteSpecial Paste:=xlPasteValues
Sheets(6).Cells(FR, 1).PasteSpecial Paste:=xlPasteFormats
Range(Cells(ICell.Row, 9), Cells(ICell.Row, 10)).Copy
Sheets(6).Cells(FR, 4).PasteSpecial Paste:=xlPasteValues
Sheets(6).Cells(FR, 4).PasteSpecial Paste:=xlPasteFormats
FR = FR + 1
End If
Next
Set objWrdDoc = objWrdApp.Documents.Open(ThisWorkbook.Path & "\РИ\Шаблон_Ролевая_Инструкция_пользователя.docx")
objWrdDoc.Bookmarks("БизнесРоль").Range.InsertAfter (Cells(1, 4).Value)
objWrdDoc.Bookmarks("БизнесРоль1").Range.InsertAfter (Cells(1, 4).Value)
objWrdDoc.Bookmarks("ТранзАк1").Range.InsertAfter (Sheets(4).Cells(25, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(25, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк1текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк2").Range.InsertAfter (Sheets(4).Cells(26, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(26, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк2текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк3").Range.InsertAfter (Sheets(4).Cells(27, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(27, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк3текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк4").Range.InsertAfter (Sheets(4).Cells(28, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(28, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк4текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк5").Range.InsertAfter (Sheets(4).Cells(29, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(29, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк5текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк6").Range.InsertAfter (Sheets(4).Cells(30, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(30, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк6текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк7").Range.InsertAfter (Sheets(4).Cells(31, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(31, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк7текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк8").Range.InsertAfter (Sheets(4).Cells(32, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(32, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк8текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк9").Range.InsertAfter (Sheets(4).Cells(33, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(33, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк9текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк10").Range.InsertAfter (Sheets(4).Cells(34, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(34, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк10текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк11").Range.InsertAfter (Sheets(4).Cells(35, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(35, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк11текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк12").Range.InsertAfter (Sheets(4).Cells(36, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(36, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк12текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк13").Range.InsertAfter (Sheets(4).Cells(37, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(37, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк13текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк14").Range.InsertAfter (Sheets(4).Cells(38, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(38, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк14текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк15").Range.InsertAfter (Sheets(4).Cells(39, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(39, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк15текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк16").Range.InsertAfter (Sheets(4).Cells(40, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(40, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк16текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк17").Range.InsertAfter (Sheets(4).Cells(41, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(41, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк17текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк18").Range.InsertAfter (Sheets(4).Cells(42, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(42, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк18текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк19").Range.InsertAfter (Sheets(4).Cells(43, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(43, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк19текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк20").Range.InsertAfter (Sheets(4).Cells(44, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(44, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк20текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк21").Range.InsertAfter (Sheets(4).Cells(45, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(45, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк21текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк22").Range.InsertAfter (Sheets(4).Cells(46, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(46, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк22текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк23").Range.InsertAfter (Sheets(4).Cells(47, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(47, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк23текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк24").Range.InsertAfter (Sheets(4).Cells(48, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(48, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк24текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
objWrdDoc.Bookmarks("ТранзАк25").Range.InsertAfter (Sheets(4).Cells(49, 4).Value)
Set objWrdDoc1 = objWrdApp.Documents.Open(ThisWorkbook.Path & "\Транзакции\" + Sheets(4).Cells(49, 4).Value + ".docx")
objWrdDoc1.Range(Start:=objWrdDoc1.Bookmarks("ТранзАкТекстНачало").Start, End:=objWrdDoc1.Bookmarks("ТранзАкТекстКонец").Start - 1).Copy
objWrdDoc.Bookmarks("ТранзАк25текст").Range.PasteAndFormat (wdFormatOriginalFormatting)
objWrdDoc1.Close SaveChanges:=False
Sheets(6).Range("A1:D" & Cells(Rows.Count, 1).End(xlUp).Row).Copy
objWrdDoc.Bookmarks("Бизнес_функции_Роли").Range.PasteAndFormat (wdFormatOriginalFormatting)
Const wdHeaderFooterPrimary = 1
For Each objSection In objWrdDoc.Sections
If objSection.Index > 1 Then objSection.Headers(wdHeaderFooterPrimary).Range.Cells(1).Range.Text = "Инструкция пользователя " + Range("D1")
Next
objWrdDoc.TablesOfContents(1).Update
objWrdDoc.SaveAs (ThisWorkbook.Path & "\РИ\173_1.2.1.2.0-XX_" + Range("D1") + "_" + Format(Date, "dd/mm/yyyy") + ".docx")
Application.ScreenUpdating = True
Application.CutCopyMode = False
Set objWrdDoc = Nothing
'Set objWrdDoc1 = Nothing
Set objWrdApp = Nothing
End Sub
|