Vba 我可以设置word宏输出的字体格式吗?

Vba 我可以设置word宏输出的字体格式吗?,vba,ms-word,Vba,Ms Word,我有一份文件,上面有对一份长长的采访记录的评论。我想让我用突出显示的文本导出这些注释。这真是太棒了,但是输出非常枯燥(纯文本) 我需要知道是否以及如何应用粗体、斜体和插入换行符。我已经找了一个小时了,因为我的VBA很糟糕,除了“marco output formatting”(马可输出格式)上的关键字搜索之外,我没有其他的参考资料 有人知道如何将下面的脚本和字体更改为文本的一部分吗 Sub ExportComments() Dim s As String Dim cmt As W

我有一份文件,上面有对一份长长的采访记录的评论。我想让我用突出显示的文本导出这些注释。这真是太棒了,但是输出非常枯燥(纯文本)

我需要知道是否以及如何应用粗体、斜体和插入换行符。我已经找了一个小时了,因为我的VBA很糟糕,除了“marco output formatting”(马可输出格式)上的关键字搜索之外,我没有其他的参考资料

有人知道如何将下面的脚本和字体更改为文本的一部分吗

Sub ExportComments()
    Dim s As String
    Dim cmt As Word.Comment
    Dim doc As Word.Document

    For Each cmt In ActiveDocument.Comments
        s = s & "Text: " & cmt.Scope.FormattedText & " -> "
        s = s & "Comments: " & cmt.Initial & cmt.Index & ":" & cmt.Range.Text & vbCr
    Next

    Set doc = Documents.Add
    doc.Range.Text = s
End Sub

也许我可以用Word解释HTML?

我假设您想要包含的格式已经包含在注释文本中,并且您只是在寻找一种方法将其纳入最终文档中。下面是脚本的一个修改版本,可以实现这一点(下面列出了一个警告):

这里的区别在于我使用的是复制粘贴,而不是生成文本字符串


警告:现在编写宏时,作用域中的任何字符格式(文件中文本旁边显示的文本)都将应用于箭头和首字母。这很容易通过搜索和替换来修复,因此我没有将其合并到脚本中。

我假设您想要包含的格式已经包含在注释文本中,并且您正在寻找一种方法将其添加到最终文档中。下面是脚本的一个修改版本,可以实现这一点(下面列出了一个警告):

这里的区别在于我使用的是复制粘贴,而不是生成文本字符串


警告:现在编写宏时,作用域中的任何字符格式(文件中文本旁边显示的文本)都将应用于箭头和首字母。这很容易通过搜索和替换来修复,因此我没有将其合并到脚本中。

这是vba,不是vbscript,您想要什么?将excel电子表格中的注释复制到word文档中?谢谢,我想知道我的问题是什么:我需要知道是否以及如何将粗体、斜体和插入换行应用到宏的输出中。如果您没有回答我的问题,现在有办法帮到您。您是否尝试使用
。复制
.PasteAndFormat(WDFormat原始格式)
。这只是一个想法,如果您需要其他支持,请让我知道…在Excel中,它的range.font.bold=true和斜体的相同方式,您尝试过吗?这是vba,不是vbscript,您想要什么?将Excel电子表格中的注释复制到word文档中?谢谢,我想知道我的问题是什么:我需要知道是否以及如何执行对宏的输出应用粗体、斜体和插入换行符。如果您没有回答我的问题,现在有办法帮您解决这个问题。您是否尝试使用
.Copy
>
.PasteAndFormat(wdFormatOriginalFormatting)
。这只是一个想法,如果您需要额外的支持,请让我知道…在Excel中,它的range.font.bold=true和斜体的相同方式,您尝试过吗?我想在我选择的片段上应用wards之后的格式,但我可以使用您上面写的内容,并尝试实现我想在was之后应用该格式我选择了一些片段,但我可以利用你上面写的,并努力实现它
Sub ExportComments()
Dim cmt As Comment
Dim newdoc As Document
Dim currDoc As Document

Set currDoc = ActiveDocument
Set newdoc = Documents.Add
currDoc.Activate
For Each cmt In currDoc.Comments
    With newdoc.Content
        cmt.Scope.Copy
        .InsertAfter "Text: "
        .Collapse wdCollapseEnd
        .Paste
        .InsertAfter " - > "
        cmt.Range.Copy
        .InsertAfter "Comments: " & cmt.Initial & cmt.Index & ":"
        .Collapse wdCollapseEnd
        .Paste
        .InsertParagraphAfter
    End With
Next

End Sub