Коллеги, помогите, пожалуйста.
 
 
Задача заключается в том, чтобы пробегая по таблице 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
Ответить
        |