【问题标题】:How Do I Control The Font Style After Moving Data From Excel To Word?将数据从 Excel 移动到 Word 后如何控制字体样式?
【发布时间】:2020-11-15 19:52:15
【问题描述】:

我有以下工作代码。我添加了 With 语句,但它格式化了页面上的所有文本。 此代码从 Excel 表中获取每一行,并提取列标题(问题)和其下方的单元格值(答案)。

我的目标是让问题以粗体和一种字体大小显示,而答案则低于正常字体和较小的大小。 我尝试仅将 With 语句包装在标题代码周围,但它仍然对整个页面进行样式化

For Each cell In tbl.DataBodyRange.Rows:

If cell.EntireRow.Hidden = False Then
    hiddenCell = cell.Row
    
    
    For Each Header In tbl.HeaderRowRange:

    With WordDoc
    .Styles(wdStyleHeading1).Font.Name = "Arial"
    .Styles(wdStyleHeading1).Font.Size = 12
    .Styles(wdStyleHeading1).Font.Bold = True
    .Styles(wdStyleHeading1).Font.Color = wdColorBlack
    .Range(0).Style = .Styles(wdStyleHeading1)
    
        headerCol = wks.Cells.Find(Header).Column
        WordDoc.Content.InsertAfter (vbNewLine)
        WordDoc.Content.InsertAfter Range(Header.Address).Value & ": "
        WordDoc.Content.InsertAfter (vbNewLine)
        WordDoc.Content.InsertAfter (Cells(hiddenCell, headerCol).Value)
        'WordDoc.Content.InsertAfter (vbNewLine)
    End With
        
    Next
WordDoc.Sections.Add

【问题讨论】:

    标签: excel vba ms-word font-face font-size


    【解决方案1】:

    首先,您需要从循环中定义标题 1。您只需要定义一次样式。

    您还可以在循环中使用 Heading 1 样式格式化文档。同样,这不需要重复。

    您的代码没有对答案应用任何其他样式。

    我已经重新起草了您的代码,设置了最后一段的文本和样式。

      With WordDoc
        With .Styles(wdStyleHeading1).Font
          .name = "Arial"
          .Size = 12
          .Bold = True
          .Color = wdColorBlack
        End With
        .Range(0).style = .Styles(wdStyleHeading1)
      End With
    
      For Each Cell In tbl.DataBodyRange.Rows:
    
        If Cell.EntireRow.Hidden = False Then hiddenCell = Cell.Row
        
        For Each Header In tbl.HeaderRowRange:
    
          With WordDoc
            headerCol = wks.Cells.Find(Header).Column
            
            .Content.InsertAfter (vbNewLine)
            With .Paragraphs.Last.Range
              .Text = Range(Header.Address).Value & ": "
              .style = wdStyleHeading1
            End With
            .Content.InsertAfter (vbNewLine)
            With .Paragraphs.Last.Range
              .Text = Cells(hiddenCell, headerCol).Value
              .style = wdStyleNormal
            End With
          End With
            
        Next Header
        WordDoc.Sections.add
      Next Cell
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多