【问题标题】:Format text within a concatenated string格式化连接字符串中的文本
【发布时间】:2021-04-10 20:23:18
【问题描述】:

我有一个公式,它将从我的电子表格上的多个单元格中提取信息并将它们连接在一起以创建最终将成为“项目简介”的文档 - 一个以简单的方式概述这些单元格中的所有信息的文档- 阅读word文档。

以下是我正在使用的 VBA 代码示例。在这段代码中,您将看到我连接了诸如“公司:”之类的内容,然后连接了从电子表格中提取的公司名称。当我将此信息输出到单元格或 word 文档时,我怎样才能做到这一点,只有单词“公司:”是粗体的?或以任何方式(大小、颜色等)格式化?

Sub ProjectBrief()

' Pull together information from the sheet to create a project brief.


' ----------- Error Checking ----------- '

On Error Resume Next

' ----------- Information ----------- '

' PROJECT NAME

Dim PROJECT_NAME As String

If Range("B" & ActiveCell.Row) = vbNullString _
    Then PROJECT_NAME = "" _
    Else: PROJECT_NAME = _
"Project Name: " & _
Range("B" & ActiveCell.Row) & _
" " & Chr(10)

' COMPANY

Dim COMPANY As String

If Range("C" & ActiveCell.Row) = vbNullString _
    Then COMPANY = "" _
    Else: COMPANY = _
"Company: " & _
Application.WorksheetFunction.Index(Range("TCompanyName"), _
Application.WorksheetFunction.Match(Range("C" & (ActiveCell.Row)), Range("TCompanyID"), 0), 1) & _
" " & Chr(10)


' ----------- Final Concatenate ----------- '

Dim FINAL As String
FINAL = "Basic Information" & Chr(10) & PROJECT_NAME & COMPANY

' ----------- Create Word Doc ----------- '

Range("F4").Value = FINAL

End Sub

【问题讨论】:

    标签: excel vba ms-word formatting concatenation


    【解决方案1】:

    如果您在要应用格式的内容之前和之后添加格式标签(例如 ),则可以在将字符串写入 Word 文档后运行如下代码:

    With ActiveDocument.Range
      With .Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Format = False
        .Forward = True
        .MatchWildcards = True
        .Wrap = wdFindContinue
        .Replacement.Text = "\1"
        .Text = "<u>(*)</u>"
        .Replacement.Font.Underline = True
        .Execute Replace:=wdReplaceAll
        .ClearFormatting
        .Text = "<b>(*)</b>"
        .Replacement.Font.Bold = True
        .Execute Replace:=wdReplaceAll
        .ClearFormatting
        .Text = "<i>(*)</i>"
        .Replacement.Font.Italic = True
        .Execute Replace:=wdReplaceAll
      End With
    End With
    

    以上代码允许单独或组合使用粗体 (b)、斜体 (i) 和下划线 (u) 格式。可以添加其他标签。

    但是,对于段落级格式,您确实应该将适当的字样式定义应用于相关段落。与上述字符属性一样,可以使用样式定义的标签(例如

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      • 2018-01-06
      • 1970-01-01
      • 2020-09-07
      • 2022-01-06
      • 2021-10-03
      • 1970-01-01
      相关资源
      最近更新 更多