2016-10-28 2 views
0

Я пытаюсь отформатировать отчет документа Word с данными из пользовательской формы в Excel. Я пытаюсь отформатировать каждую строку отдельно, как это есть HTML, и я знаю, что делаю это неправильно. Я вставлю свой код ниже, пожалуйста, направляйте меня в правильном направлении, как форматировать каждую строку так, как я ее хочу. Этот выбор кода должен содержать слова «Наблюдения за безопасностью»: жирным и подчеркнутым, тогда следующая строка должна быть значениями из текстового поля, не жирным или подчеркнутым. Когда я запускаю код, который я просто получить простой текст nonformatted версию этогоФорматировать каждую строку вывода документа Word из VBA

With wrdDoc 
    .Content.Font.Bold = True 
    .Content.Font.Underline = True 
    .Content.InsertAfter ("Safety Observations:" & vbNewLine) 
    .Content.Font.Bold = False 
    .Content.Font.Underline = False 
    .Content.InsertAfter (EOS.txtSafety & vbNewLine) 
    End with 
+0

Вы использовали встроенный в [записи макросов ] (https://support.office.com/en-gb/article/Record-or-run-a-macro-cd56fb86-d8b2-475c-ba39-9728389feeeb?ui=en-US&rs=en-GB&ad=GB&fromAR= 1)? Это отличный способ узнать, что делают части объектной модели Word. Попробуйте вручную отредактировать документ слова во время работы рекордера. Затем вы можете перенести этот код в Excel. –

ответ

0

Сохранение диапазон в переменной можно сделать проще:

' optional early binding if reference is added to Microsoft Word #.0 Object Library 
Dim r As Word.Range, wrdDoc As Word.Document 

Set r = wrdDoc.Paragraphs.Add.Range 
r.InsertBefore "Safety Observations:" 
r.Bold = True 
r.Underline = True 

wrdDoc.Paragraphs.Add.Range.InsertBefore EOS.txtSafety 
Смежные вопросы