Коллеги, помогите, пожалуйста.
Задача заключается в том, чтобы пробегая по таблице Excel в созданный файл Word перенести значения из ячеек по определенным условиям.
Макрос написал: ячейки определяются из каких нужно копировать текст, новый документ Word создается (в дальнейшем пользователь сам будет его сохранять, сам решая как сохранять и куда).
Столкнулся с тремя трудностями.
1. Находится одна ячейка по заданным условиям, почему то происходит одно нахождение, а затем сразу выход из цикла, не могу никак сообразить почему так происходит.
2. Как вставить автоматически в документе Word заголовок документа, его название, первой строкой документа: "Список нормативных требований"? Как сделать так, чтобы эта надпись была по центру страницы, шрифтом 14, жирным?
3. В Word текст вставляется в одно и тоже место, там где находится курсор. Как сделать так, чтобы курсор перемещался в конец документа и следующий текст вставлялся с нового абзаца?
Тест сырого макроса такой:
Dim r1 As Range, r2 As Range
Dim n1 As Range
Dim q1 As Range
Dim j As Integer
Dim c1 As Range
Dim WCurr As Workbook, WPr As Workbook
Dim Shr As Worksheet, Shp As Worksheet
Dim objWrdApp As Object, objWrdDoc As Object
Set WCurr = ActiveWorkbook
Set Shr = WCurr.Worksheets("сформировать")
Set r2 = Shr.Range("A1")
Set Shp = WCurr.Worksheets("база_данных")
Set r1 = Shp.Range("A3")
Set q1 = r1.End(xlDown)
Set n1 = Range(r1, q1)
Set objWrdApp = CreateObject("Word.Application")
objWrdApp.Visible = True
Set objWrdDoc = objWrdApp.Documents.Add
If r2.Value = 1 And r2.Offset(0, 1).Value = 1 Then
For j = 1 To n1.Rows.Count
Set c1 = n1.Cells(j, 1)
If c1.Offset(0, 7).Value = 1 And c1.Offset(0, 20) <> "" Then
c1.Offset(0, 3).Copy
objWrdDoc.Range(0).PasteSpecial ' вставляется в Word заглавие документа
c1.Offset(0, 20).Copy
objWrdDoc.Range(0).PasteSpecial ' вставляется в Word текст из найденной по условию ячейке Excel
' текст из ячейки вставляется вместо заглавия
Exit For
End If
Next
End If
End Sub
Ответить
|