将数据从Excel移动到Word后,如何控制字体样式?
我有下面的工作代码。我添加了With语句,但它格式化了页面上的所有文本。 这段代码从excel表格中获取每一行,并提取列标题(问题)及其下方的单元格值(答案) 我的目标是让问题用粗体和一种字体,答案用普通字体和更小的字体。 我尝试将With语句仅围绕页眉代码进行包装,但它仍然会使整个页面风格化将数据从Excel移动到Word后,如何控制字体样式?,excel,vba,ms-word,font-face,font-size,Excel,Vba,Ms Word,Font Face,Font Size,我有下面的工作代码。我添加了With语句,但它格式化了页面上的所有文本。 这段代码从excel表格中获取每一行,并提取列标题(问题)及其下方的单元格值(答案) 我的目标是让问题用粗体和一种字体,答案用普通字体和更小的字体。 我尝试将With语句仅围绕页眉代码进行包装,但它仍然会使整个页面风格化 For Each cell In tbl.DataBodyRange.Rows: If cell.EntireRow.Hidden = False Then hiddenCell = cell.
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
首先,您需要将定义标题1从循环中去掉。只需定义一次样式 您还可以在循环中使用标题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