2016-10-28 51 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