Страницы: 1
RSS
vba: экспорт данных из userform в word
 
Добрый вечер! Помогите, пожалуйста, решить следующую задачу: есть userform со множеством label, размещенных в табличном порядке. Надо по нажатию на кнопку на форме программно создать документ word и перенести туда данные из всех контролов в том же табличном порядке (можно даже таблицу для наглядности нарисовать - на форме-то ее не нарисуешь).  
Во вложении фрагмент данных userform - покажите, пожалуйста, каким образом осуществлять такой экспорт, а я сделаю по аналогии в своей полновесной версии.
 
Black__Hole, при всем уважении, зачем такой изврат? Есть инстумент в Ворд - Слияние. Можно еще табличку скопировать и вставить связь. Можно накидать кучу полей в Ворд и макросом вставлять туда значенич(таких примеров тьма, но это неэффективно). ИМХО лучший для Вас способ - Слияние.
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=09.11.2011 07:36}{thema=}{post}Black__Hole, при всем уважении, зачем такой изврат? Есть инстумент в Ворд - Слияние. Можно еще табличку скопировать и вставить связь. Можно накидать кучу полей в Ворд и макросом вставлять туда значенич(таких примеров тьма, но это неэффективно). ИМХО лучший для Вас способ - Слияние.{/post}{/quote}  
Дело в том, что в моем случае речь идет о калькуляторе на userform: пользователи совершают различные манипуляции -> в результате получают расчетные данные. Расчетные данные выводятся на вспомогательное окно формы (как в примере). Хочется дать возможность пользователям перебросить расчетные данные в word.  
В принципе, на userform значения попадают с листа excel. Может, проще переносить данные с листа?
 
>>Может, проще переносить данные с листа?  
 
Не то слово!
 
{quote}{login=RAN}{date=09.11.2011 07:56}{thema=}{post}>>Может, проще переносить данные с листа?  
 
Не то слово!{/post}{/quote}  
 
Расскажите, пожалуйста, как создать файл word, в нем - таблицу, и начать вставлять в определенные ячейки таблицы данные из ячеек листа excel
 
Давайте, я лучше покажу Вам пример(тоже для какой-то женщины делал:-)) В эксе ставим курсор в любую ячейку, топчем кнопу и данные из этой строки переносятся в Ворд документ. Оба файла д.б. в одной папке. Попробуйте разобраться, переключая в Ворде режимы отображения кодов\значений полей.  
П.С. делалось для версий 2007-2010.
Я сам - дурнее всякого примера! ...
 
\приблизительно то, о чем говорил RAN
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
чуть перемудрил, вечер : )  
 
Sub io()  
Me.Range("A1:C6").Copy  
With CreateObject("Word.Application"): .Visible = True  
   .Documents.Add.Range.PasteExcelTable False, False, False  
End With  
End Sub
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
а с формы никак ? может малюсенький примерчик, господа профессионалы выручайте ))))
 
сразу в ворд тяжко - надо будет с растояниями между слов мучаться чтоб как в форме было. проще выгрузить данные с формы в xls/txt/csv а уж потом если очень надо открыть в ворде.  
Private Sub CommandButton5_Click()  
x = Me.lb_konstr_SSt  
y = Me.lb_konstr_SS  
Set fso = CreateObject("Scripting.FileSystemObject")  
Set f = fso.GetFile("C:\my.txt")  
Set ts = f.OpenAsTextStream(8, -2)  
ts.WriteLine "Конструктив;" & x & ";" & y & ";"  
ts.Close  
Set oWrdDoc = oWrdApp.Documents.Open("C:\my.txt")  
oWrdApp.Visible = True  
oWrdDoc.Activate  
End Sub
 
поправка  
x = Me.lb_konstr_SSt.caption  
y = Me.lb_konstr_SS.caption
 
Спасибо Всем огромное за помощь! Воспользовалась вариантом от пользовтеля nerv.
 
{quote}{login=nerv}{date=09.11.2011 09:40}{thema=}{post}чуть перемудрил, вечер : )  
 
Sub io()  
Me.Range("A1:C6").Copy  
With CreateObject("Word.Application"): .Visible = True  
   .Documents.Add.Range.PasteExcelTable False, False, False  
End With  
End Sub{/post}{/quote}  
Уважаемый nerv, а можно ли при копировании в word задать условия "разместить не более, чем на одну страницу" или просто альбомную ориентацию?
 
>или просто альбомную ориентацию?  
 
Sub io()  
Me.Range("A1:C6").Copy  
With CreateObject("Word.Application")  
   With .Documents.Add  
       .PageSetup.Orientation = 1  
       .Range.PasteExcelTable False, False, False  
   End With  
   .Visible = True  
End With  
End Sub
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
На будущее: пользуйтесь макрорекодером и будет Вам счастье ; )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
{quote}{login=nerv}{date=10.11.2011 01:25}{thema=}{post}>или просто альбомную ориентацию?  
 
Sub io()  
Me.Range("A1:C6").Copy  
With CreateObject("Word.Application")  
   With .Documents.Add  
       .PageSetup.Orientation = 1  
       .Range.PasteExcelTable False, False, False  
   End With  
   .Visible = True  
End With  
End Sub{/post}{/quote}  
 
Спасибо!
Страницы: 1
Читают тему
Наверх