2016-10-28 55 views
0

我想格式化一個Word文檔報告與來自Excel中的用戶窗體的數據。我試圖單獨格式化每一行,就像它是HTML,我知道我做錯了。我將在下面粘貼我的代碼,請指導我如何按照我想要的方式格式化每條線的正確方向。這種代碼選擇應該有安全觀察:以粗體和下劃線,然後下一行應該是文本框中的值,而不是粗體或下劃線。當我運行的代碼,我剛開的這格式從VBA輸出的Word文檔的每一行

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對象模型的哪些部分做什麼的好方法。嘗試手動編輯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