Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: перенос текста из ячеек Excel в документ Word Добавлено: 20.07.12 07:58  

Автор вопроса:  Markan
Коллеги, помогите, пожалуйста.

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

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Дмит



Вопросов: 11
Ответов: 160
 Web-сайт: dimit.pochta.ru
 Профиль | | #1
Добавлено: 20.07.12 10:19
выход из цикла - возможно пустые ячейки.
замени Set q1 = r1.End(xlDown)
на Set q1 = r1.SpecialCells(xlCellTypeLastCell)
попробуй
2,3 - воспользуйся макрорекордером в Word. проанализируй :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам