Страницы: 1
RSS
перенос текста из ячеек Excel в документ Word
 
Коллеги, помогите, пожалуйста.  
 
Задача заключается в том, чтобы пробегая по таблице Excel в созданный файл Word перенести значения из ячеек по определенным условиям.  
 
Макрос написал: ячейки определяются из каких нужно копировать текст, новый документ Word создается (в дальнейшем пользователь сам будет его сохранять, сам решая как сохранять и куда).  
 
Столкнулся с тремя трудностями.  
1. Находится одна ячейка по заданным условиям, почему то происходит одно нахождение, а затем сразу выход из цикла, не могу никак сообразить почему так происходит.  
 
2. Как вставить автоматически в документе Word заголовок документа, его название, первой строкой документа: "Список нормативных требований"? Как сделать так, чтобы эта надпись была по центру страницы, шрифтом 14, жирным?  
 
3. В Word текст вставляется в одно и тоже место, там где находится курсор. Как сделать так, чтобы курсор перемещался в конец документа и следующий текст вставлялся с нового абзаца?  
 
Тест сырого макроса такой:  
 
<EM><FONT color=#99000><STRONG>Макрос ниже.  
Длинные листинги вставляйте в .txt</STRONG></FONT>  - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Код здесь
 
Тест сырого макроса в прикрепленном выше файле "post_348574.txt"
 
Наверное так можно сделать для заголовка документа Word...  
 
А как сделать для текста переносимого из ячеек Excel?  
 
Их ведь может быть сколь угодно много...
 
Изъясняться беспредметно, неконкретно - не лучший метод... Посмотрите вариант слияния данных excel'я с формой ворда, это если не по одному экземпляру делать... Применимо для массовой рассылки, составления договоров, печатания стикеров, этикеток... ;) И загляните на сайт The_Prist'а - адрес в его подписи (познавательно!)... -82772-
 
Исправил, exit for был лишним, теперь цикл проходит полностью.  
 
 
Теперь в конец документа вставляется только записи одного шага цикла, на повторных шагах записи пишутся на ранее созданные...  
 
 
Как сделать так, чтобы на шаге 1 (например) записи записывались и на 2, 3, и т.д шаге записи не переписывали прежние, а записывались в документе Word ниже?
 
Может перед Next в коде както создать в Word закладку? Как это сделать?
 
Типа такого, но здесь закладки остаются на одном месте  
 
       For j = 1 To n1.Rows.Count  
               Set c1 = n1.Cells(j, 1)  
                  i = j  
               If c1.Offset(0, 7).Value = 1 And c1.Offset(0, 20) <> "" Then  
                  c1.Offset(0, 3).Copy  
                  objWrdDoc.Range(0).PasteSpecial  
                  objWrdDoc.Range(i).InsertAfter (c1.Offset(0, 5).Value)  
                  objWrdDoc.Range(i).InsertAfter (c1.Offset(0, 20).Value)  
                             
            End If  
 
   With objWrdDoc.Bookmarks  
       .Add Range:=objWrdDoc.Range, Name:="çàêëàäêà" & i  
       .ShowHidden = False  
   End With  
 
      Next
 
Типа такого, но здесь закладки остаются на одном месте  
 
For j = 1 To n1.Rows.Count  
Set c1 = n1.Cells(j, 1)  
i = j  
If c1.Offset(0, 7).Value = 1 And c1.Offset(0, 20) <> "" Then  
c1.Offset(0, 3).Copy  
objWrdDoc.Range(0).PasteSpecial  
objWrdDoc.Range(i).InsertAfter (c1.Offset(0, 5).Value)  
objWrdDoc.Range(i).InsertAfter (c1.Offset(0, 20).Value)  
 
End If  
 
With objWrdDoc.Bookmarks  
.Add Range:=objWrdDoc.Range, Name:="закладка" & i  
.ShowHidden = False  
End With  
 
Next
 
Есть еще идея такая.  
 
В конце шага курсор перемещать в конец текста, но ругается jib,rjq 438, подскажите в чем ошибка?  
 
 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.PasteSpecial  
                  objWrdDoc.Range.InsertAfter (c1.Offset(0, 5).Value)  
                  objWrdDoc.Range.InsertAfter (c1.Offset(0, 20).Value)  
                  objWrdDoc.EndKey unit:=6  
       
               
            End If  
 
      Next
 
Markan, может хватит изобретать велосипед, и имеет смысл воспользоваться специализированной программой (надстройкой для Excel)?  
http://excelvba.ru/programmes/FillDocuments  
 
Программа заполнения документов данными из таблицы Excel (из Excel в Word)
 
Дело в том, что этим файлом будут пользоваться другие люди, и есть не очень хорошо то, что им нужно будет еще что-то в ёкселе делать кроме как кнопку макроса нажать.  
 
Макрос я написал, Спасибо всем за помощь и за участие.
Страницы: 1
Читают тему
Наверх